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

  assumes PEqQ:   "Eq P Q"
  and     PRelQ: "(\<Psi>, P, Q) \<in> Rel"
  and     "guarded P"
  and     "guarded Q"
  and     Rel'Rel: "Rel' \<subseteq> Rel"
  and     FrameParPres: "\<And>\<Psi>' \<Psi>\<^sub>U S T U A\<^sub>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>', U \<parallel> S, U \<parallel> T) \<in> Rel"
  and     C1: "\<And>\<Psi>' S T U. \<lbrakk>(\<Psi>', S, T) \<in> Rel; guarded S; guarded T\<rbrakk> \<Longrightarrow> (\<Psi>', U \<parallel> !S, U \<parallel> !T) \<in> Rel''"
  and     Closed: "\<And>\<Psi>' S T p. (\<Psi>', S, T) \<in> Rel \<Longrightarrow> ((p::name prm) \<bullet> \<Psi>', p \<bullet> S, p \<bullet> T) \<in> Rel"
  and     Closed': "\<And>\<Psi>' S T p. (\<Psi>', S, T) \<in> Rel' \<Longrightarrow> ((p::name prm) \<bullet> \<Psi>', p \<bullet> S, p \<bullet> T) \<in> Rel'"
  and     StatEq: "\<And>\<Psi>' S T \<Psi>''. \<lbrakk>(\<Psi>', S, T) \<in> Rel; \<Psi>' \<simeq> \<Psi>''\<rbrakk> \<Longrightarrow> (\<Psi>'', S, T) \<in> Rel"
  and     StatEq': "\<And>\<Psi>' S T \<Psi>''. \<lbrakk>(\<Psi>', S, T) \<in> Rel'; \<Psi>' \<simeq> \<Psi>''\<rbrakk> \<Longrightarrow> (\<Psi>'', S, T) \<in> Rel'"
  and     Trans: "\<And>\<Psi>' S T U. \<lbrakk>(\<Psi>', S, T) \<in> Rel; (\<Psi>', T, U) \<in> Rel\<rbrakk> \<Longrightarrow> (\<Psi>', S, U) \<in> Rel"
  and     Trans': "\<And>\<Psi>' S T U. \<lbrakk>(\<Psi>', S, T) \<in> Rel'; (\<Psi>', T, U) \<in> Rel'\<rbrakk> \<Longrightarrow> (\<Psi>', S, U) \<in> Rel'"
  and     EqSim: "\<And>\<Psi>' S T. Eq S T \<Longrightarrow> \<Psi>' \<rhd> S \<leadsto>\<guillemotleft>Rel\<guillemotright> T"
  and     cSim: "\<And>\<Psi>' S T. (\<Psi>', S, T) \<in> Rel \<Longrightarrow> \<Psi>' \<rhd> S \<leadsto><Rel> T"
  and     cSym: "\<And>\<Psi>' S T. (\<Psi>', S, T) \<in> Rel \<Longrightarrow> (\<Psi>', T, S) \<in> Rel"
  and     cSym': "\<And>\<Psi>' S T. (\<Psi>', S, T) \<in> Rel' \<Longrightarrow> (\<Psi>', T, S) \<in> Rel'"
  and     cExt: "\<And>\<Psi>' S T \<Psi>''. (\<Psi>', S, T) \<in> Rel \<Longrightarrow> (\<Psi>' \<otimes> \<Psi>'', S, T) \<in> Rel"
  and     cExt': "\<And>\<Psi>' S T \<Psi>''. (\<Psi>', S, T) \<in> Rel' \<Longrightarrow> (\<Psi>' \<otimes> \<Psi>'', S, T) \<in> Rel'"
  and     ParPres: "\<And>\<Psi>' S T U. (\<Psi>', S, T) \<in> Rel \<Longrightarrow> (\<Psi>', S \<parallel> U, T \<parallel> U) \<in> Rel"
  and     ParPres': "\<And>\<Psi>' S T U. (\<Psi>', S, T) \<in> Rel' \<Longrightarrow> (\<Psi>', U \<parallel> S, U \<parallel> T) \<in> Rel'"
  and     ParPres2: "\<And>\<Psi>' S T. Eq S T \<Longrightarrow> Eq (S \<parallel> S) (T \<parallel> T)"
  and     ResPres: "\<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     ResPres': "\<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     Assoc: "\<And>\<Psi>' S T U. (\<Psi>', S \<parallel> (T \<parallel> U), (S \<parallel> T) \<parallel> U) \<in> Rel"
  and     Assoc': "\<And>\<Psi>' S T U. (\<Psi>', S \<parallel> (T \<parallel> U), (S \<parallel> T) \<parallel> U) \<in> Rel'"
  and     ScopeExt: "\<And>xvec \<Psi>' T S. \<lbrakk>xvec \<sharp>* \<Psi>'; xvec \<sharp>* T\<rbrakk> \<Longrightarrow> (\<Psi>', \<lparr>\<nu>*xvec\<rparr>(S \<parallel> T), (\<lparr>\<nu>*xvec\<rparr>S) \<parallel> T) \<in> Rel"
  and     ScopeExt': "\<And>xvec \<Psi>' T S. \<lbrakk>xvec \<sharp>* \<Psi>'; xvec \<sharp>* T\<rbrakk> \<Longrightarrow> (\<Psi>', \<lparr>\<nu>*xvec\<rparr>(S \<parallel> T), (\<lparr>\<nu>*xvec\<rparr>S) \<parallel> T) \<in> Rel'"
  and     Compose: "\<And>\<Psi>' S T U O. \<lbrakk>(\<Psi>', S, T) \<in> Rel; (\<Psi>', T, U) \<in> Rel''; (\<Psi>', U, O) \<in> Rel'\<rbrakk> \<Longrightarrow> (\<Psi>', S, O) \<in> Rel''"
  and     rBangActE: "\<And>\<Psi>' S \<alpha> S'. \<lbrakk>\<Psi>' \<rhd> !S \<longmapsto>\<alpha> \<prec> S'; guarded S; bn \<alpha> \<sharp>* S; \<alpha> \<noteq> \<tau>; bn \<alpha> \<sharp>* subject \<alpha>\<rbrakk> \<Longrightarrow> \<exists>T. \<Psi>' \<rhd> S \<longmapsto>\<alpha> \<prec> T \<and> (\<one>, S', T \<parallel> !S) \<in> Rel'"
  and     rBangTauE: "\<And>\<Psi>' S S'. \<lbrakk>\<Psi>' \<rhd> !S \<longmapsto>\<tau> \<prec> S'; guarded S\<rbrakk> \<Longrightarrow> \<exists>T. \<Psi>' \<rhd> S \<parallel> S \<longmapsto>\<tau> \<prec> T \<and> (\<one>, S', T \<parallel> !S) \<in> Rel'"
  and     rBangTauI: "\<And>\<Psi>' S S'. \<lbrakk>\<Psi>' \<rhd> S \<parallel> S \<Longrightarrow>\<^sub>\<tau> S'; guarded S\<rbrakk> \<Longrightarrow> \<exists>T. \<Psi>' \<rhd> !S \<Longrightarrow>\<^sub>\<tau> T \<and> (\<Psi>', T, S' \<parallel> !S) \<in> Rel'"
  shows "\<Psi> \<rhd> R \<parallel> !P \<leadsto>\<guillemotleft>Rel''\<guillemotright> R \<parallel> !Q"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<leadsto>\<guillemotleft>Rel''\<guillemotright> R \<parallel> !Q
[PROOF STEP]
proof(induct rule: weakCongSimI)
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>Q'. \<Psi> \<rhd> R \<parallel> !Q \<longmapsto> \<tau> \<prec> Q' \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', Q') \<in> Rel''
[PROOF STEP]
case(cTau RQ')
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !Q \<longmapsto> \<tau> \<prec> RQ'

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

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

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

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

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<longmapsto> \<tau> \<prec> R' \<parallel> !P
[PROOF STEP]
by(rule_tac Par1) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<longmapsto> \<tau> \<prec> R' \<parallel> !P

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

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

goal (4 subgoals):
 1. \<And>P' A\<^sub>Q \<Psi>\<^sub>Q. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> \<tau> \<prec> P'; extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>; distinct A\<^sub>Q; A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, P' \<parallel> !Q) \<in> Rel''
 2. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R' \<parallel> !P

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

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> !P, R' \<parallel> !Q) \<in> Rel''
[PROOF STEP]
using \<open>guarded P\<close> \<open>guarded Q\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q

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

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

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

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
case(cPar2 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>* R
A\<^sub>R \<sharp>* !Q
A\<^sub>R \<sharp>* (P, Q, R)

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

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

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

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from FrQ \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
guarded Q
[PROOF STEP]
have "\<Psi>\<^sub>Q \<simeq> \<one>" and "supp \<Psi>\<^sub>Q = ({}::name set)"
[PROOF STATE]
proof (prove)
using this:
extractFrame Q = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
guarded Q

goal (1 subgoal):
 1. \<Psi>\<^sub>Q \<simeq> \<one> &&& supp \<Psi>\<^sub>Q = {}
[PROOF STEP]
by(blast dest: guardedStatEq)+
[PROOF STATE]
proof (state)
this:
\<Psi>\<^sub>Q \<simeq> \<one>
supp \<Psi>\<^sub>Q = {}

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

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

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>R \<rhd> !Q \<longmapsto>\<tau> \<prec> Q'\<close> \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'
guarded Q
[PROOF STEP]
obtain T where QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<parallel> Q \<longmapsto>\<tau> \<prec> T" and "(\<one>, Q', T \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'
guarded Q

goal (1 subgoal):
 1. (\<And>T. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<parallel> Q \<longmapsto> \<tau> \<prec> T; (\<one>, Q', T \<parallel> !Q) \<in> Rel'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(blast dest: rBangTauE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<parallel> Q \<longmapsto> \<tau> \<prec> T
(\<one>, Q', T \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. Eq (P \<parallel> P) (Q \<parallel> Q)
[PROOF STEP]
by(rule ParPres2)
[PROOF STATE]
proof (state)
this:
Eq (P \<parallel> P) (Q \<parallel> Q)

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> \<Psi>\<^sub>R \<rhd> Q \<parallel> Q \<longmapsto> \<tau> \<prec> T
Eq (P \<parallel> P) (Q \<parallel> Q)
[PROOF STEP]
obtain S where PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> P \<Longrightarrow>\<^sub>\<tau> S" and SRelT: "(\<Psi> \<otimes> \<Psi>\<^sub>R, S, T) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<parallel> Q \<longmapsto> \<tau> \<prec> T
Eq (P \<parallel> P) (Q \<parallel> Q)

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

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from PTrans \<open>guarded P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> P \<Longrightarrow>\<^sub>\<tau> S
guarded P
[PROOF STEP]
obtain U where PChain: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U" and "(\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> P \<Longrightarrow>\<^sub>\<tau> S
guarded P

goal (1 subgoal):
 1. (\<And>U. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U; (\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(blast dest: rBangTauI)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U
(\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel'

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>\<^sub>\<tau> U
A\<^sub>R \<sharp>* P
[PROOF STEP]
have "A\<^sub>R \<sharp>* U"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U
A\<^sub>R \<sharp>* P

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

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U\<close> 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> U
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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> U"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> U
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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> U
[PROOF STEP]
by(rule_tac tauStepChainPar2) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> U

goal (3 subgoals):
 1. \<And>Q' A\<^sub>P \<Psi>\<^sub>P. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> \<tau> \<prec> Q'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; A\<^sub>P \<sharp>* \<Psi>; A\<^sub>P \<sharp>* R; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> U

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

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

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

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

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

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel
[PROOF STEP]
using FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* U\<close> \<open>A\<^sub>R \<sharp>* S\<close> \<open>A\<^sub>R \<sharp>* P\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, U, S \<parallel> !P) \<in> Rel
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* U
A\<^sub>R \<sharp>* S
A\<^sub>R \<sharp>* P

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel
[PROOF STEP]
by(rule_tac FrameParPres) auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<Psi> \<otimes> \<Psi>\<^sub>R, S, T) \<in> Rel\<close> FrR \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* S\<close> \<open>A\<^sub>R \<sharp>* T\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, S, T) \<in> Rel
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* S
A\<^sub>R \<sharp>* T
[PROOF STEP]
have "(\<Psi>, R \<parallel> S, R \<parallel> T) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, S, T) \<in> Rel
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* S
A\<^sub>R \<sharp>* T

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> S, R \<parallel> T) \<in> Rel
[PROOF STEP]
by(rule_tac FrameParPres) auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> S, R \<parallel> T) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R \<parallel> T, R \<parallel> S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> S, R \<parallel> T) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> T, R \<parallel> S) \<in> Rel
[PROOF STEP]
by(rule cSym)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> T, R \<parallel> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R \<parallel> T) \<parallel> !P, (R \<parallel> S) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> T, R \<parallel> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> S \<parallel> !P) \<in> Rel
[PROOF STEP]
by(rule ParPres)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R \<parallel> S) \<parallel> !P, (R \<parallel> T) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> S \<parallel> !P, R \<parallel> T \<parallel> !P) \<in> Rel
[PROOF STEP]
by(rule cSym)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> S \<parallel> !P, R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R \<parallel> (S \<parallel> !P), (R \<parallel> T) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> S \<parallel> !P, R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> (S \<parallel> !P), R \<parallel> T \<parallel> !P) \<in> Rel
[PROOF STEP]
by(metis Trans Assoc)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> (S \<parallel> !P), R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel
(\<Psi>, R \<parallel> (S \<parallel> !P), R \<parallel> T \<parallel> !P) \<in> Rel
[PROOF STEP]
have "(\<Psi>, R \<parallel> U, (R \<parallel> T) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> U, R \<parallel> (S \<parallel> !P)) \<in> Rel
(\<Psi>, R \<parallel> (S \<parallel> !P), R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> T \<parallel> !P) \<in> Rel
[PROOF STEP]
by(rule Trans)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> U, R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> U, R \<parallel> T \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<in> Rel\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> Rel
[PROOF STEP]
have "(\<Psi>, (R \<parallel> T) \<parallel> !P, (R \<parallel> T) \<parallel> !Q) \<in> Rel''"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> T \<parallel> !Q) \<in> Rel''
[PROOF STEP]
using \<open>guarded P\<close> \<open>guarded Q\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q

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

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> T \<parallel> !Q) \<in> Rel''

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<one>, Q', T \<parallel> !Q) \<in> Rel'\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<one>, Q', T \<parallel> !Q) \<in> Rel'
[PROOF STEP]
have "(\<one> \<otimes> \<Psi>, Q', T \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one>, Q', T \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<one> \<otimes> \<Psi>, Q', T \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule cExt')
[PROOF STATE]
proof (state)
this:
(\<one> \<otimes> \<Psi>, Q', T \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, Q', T \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one> \<otimes> \<Psi>, Q', T \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, Q', T \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule StatEq') (metis Identity AssertionStatEqSym Commutativity AssertionStatEqTrans)
[PROOF STATE]
proof (state)
this:
(\<Psi>, Q', T \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R \<parallel> Q', R \<parallel> (T \<parallel> !Q)) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, Q', T \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R \<parallel> Q', (R \<parallel> T) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> Q', R \<parallel> (T \<parallel> !Q)) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> Q', R \<parallel> T \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(metis Trans' Assoc')
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> Q', R \<parallel> T \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R \<parallel> T) \<parallel> !Q, R \<parallel> Q') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> Q', R \<parallel> T \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, R \<parallel> U, R \<parallel> T \<parallel> !P) \<in> Rel
(\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> T \<parallel> !Q) \<in> Rel''
(\<Psi>, R \<parallel> T \<parallel> !Q, R \<parallel> Q') \<in> Rel'
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R \<parallel> U, R \<parallel> T \<parallel> !P) \<in> Rel
(\<Psi>, R \<parallel> T \<parallel> !P, R \<parallel> T \<parallel> !Q) \<in> Rel''
(\<Psi>, R \<parallel> T \<parallel> !Q, R \<parallel> Q') \<in> Rel'

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<Psi>, R \<parallel> U, R \<parallel> Q') \<in> Rel''

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

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<parallel> Q') \<in> Rel''
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', R \<parallel> 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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
case(cComm1 \<Psi>\<^sub>Q M N R' A\<^sub>R \<Psi>\<^sub>R K xvec Q' A\<^sub>Q)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
distinct A\<^sub>R
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<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>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
distinct xvec
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* M
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* R'
A\<^sub>R \<sharp>* !Q
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* A\<^sub>Q
A\<^sub>R \<sharp>* (P, Q, R)
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* K
A\<^sub>Q \<sharp>* N
A\<^sub>Q \<sharp>* R'
A\<^sub>Q \<sharp>* !Q
A\<^sub>Q \<sharp>* xvec
A\<^sub>Q \<sharp>* Q'
A\<^sub>Q \<sharp>* (P, Q, R)
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* R
xvec \<sharp>* M
xvec \<sharp>* K
xvec \<sharp>* !Q
xvec \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* (P, Q, 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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, Q, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* (P, Q, R)
[PROOF STEP]
have "A\<^sub>R \<sharp>* P" and "A\<^sub>R \<sharp>* Q" and "A\<^sub>R \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* (P, Q, R)

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P &&& A\<^sub>R \<sharp>* Q &&& A\<^sub>R \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, Q, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* (P, Q, R)
[PROOF STEP]
have "xvec \<sharp>* P" and "xvec \<sharp>* Q" and "xvec \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* (P, Q, R)

goal (1 subgoal):
 1. xvec \<sharp>* P &&& xvec \<sharp>* Q &&& xvec \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* P
xvec \<sharp>* Q
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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>M\<lparr>N\<rparr> \<prec> R'\<close> FrR \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* N\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>A\<^sub>R \<sharp>* M\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<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>* N
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* M
[PROOF STEP]
obtain A\<^sub>R' \<Psi>\<^sub>R' \<Psi>' where FrR': "extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>" and "\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'" and "A\<^sub>R' \<sharp>* xvec" and "A\<^sub>R' \<sharp>* P" and "A\<^sub>R' \<sharp>* Q" and "A\<^sub>R' \<sharp>* \<Psi>"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<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>* N
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* M

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

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel
[PROOF STEP]
by(rule cExt)
[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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, 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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>R \<rhd> !Q \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'\<close> \<open>guarded Q\<close> \<open>xvec \<sharp>* Q\<close> \<open>xvec \<sharp>* K\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
guarded Q
xvec \<sharp>* Q
xvec \<sharp>* K
[PROOF STEP]
obtain S where QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S" and "(\<one>, Q', S \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> Q'
guarded Q
xvec \<sharp>* Q
xvec \<sharp>* K

goal (1 subgoal):
 1. (\<And>S. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S; (\<one>, Q', S \<parallel> !Q) \<in> Rel'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: rBangActE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
(\<one>, Q', S \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, P, Q) \<in> Rel
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
(\<one>, Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
obtain P' T where PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<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> T" and "((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
(\<one>, Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<And>P' T. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T; ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* \<Psi>\<^sub>R\<close> \<open>xvec \<sharp>* P\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
(\<one>, Q', S \<parallel> !Q) \<in> Rel'
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* P

goal (1 subgoal):
 1. (\<And>P' T. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T; ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: cSim weakSimE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from PTrans \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>A\<^sub>R' \<sharp>* P\<close> \<open>A\<^sub>R' \<sharp>* xvec\<close> \<open>xvec \<sharp>* K\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* xvec
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* xvec
xvec \<sharp>* K
distinct xvec
[PROOF STEP]
have "A\<^sub>R \<sharp>* P'" and  "A\<^sub>R' \<sharp>* P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* xvec
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* xvec
xvec \<sharp>* K
distinct xvec

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P' &&& A\<^sub>R' \<sharp>* P'
[PROOF STEP]
by(force dest: weakOutputFreshChainDerivative)+
[PROOF STATE]
proof (state)
this:
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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> T
A\<^sub>R \<sharp>* P'
A\<^sub>R' \<sharp>* P'
[PROOF STEP]
have "A\<^sub>R' \<sharp>* T"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
A\<^sub>R \<sharp>* P'
A\<^sub>R' \<sharp>* P'

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

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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from QTrans \<open>A\<^sub>R' \<sharp>* Q\<close> \<open>A\<^sub>R' \<sharp>* xvec\<close> \<open>xvec \<sharp>* K\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* xvec
xvec \<sharp>* K
distinct xvec
[PROOF STEP]
have "A\<^sub>R' \<sharp>* S"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> S
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* xvec
xvec \<sharp>* K
distinct xvec

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

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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
obtain A\<^sub>Q' \<Psi>\<^sub>Q' where FrQ': "extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>" and "A\<^sub>Q' \<sharp>* \<Psi>" and "A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R" and "A\<^sub>Q' \<sharp>* A\<^sub>R" and "A\<^sub>Q' \<sharp>* M" and "A\<^sub>Q' \<sharp>* R" and "A\<^sub>Q' \<sharp>* K"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>Q' \<Psi>\<^sub>Q'. \<lbrakk>extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>; A\<^sub>Q' \<sharp>* \<Psi>; A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R; A\<^sub>Q' \<sharp>* A\<^sub>R; A\<^sub>Q' \<sharp>* M; A\<^sub>Q' \<sharp>* R; A\<^sub>Q' \<sharp>* K\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, \<Psi>\<^sub>R, A\<^sub>R, K, M, R)" in freshFrame) auto
[PROOF STATE]
proof (state)
this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
A\<^sub>Q' \<sharp>* \<Psi>
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q' \<sharp>* A\<^sub>R
A\<^sub>Q' \<sharp>* M
A\<^sub>Q' \<sharp>* R
A\<^sub>Q' \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from FrQ' \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
guarded Q
[PROOF STEP]
have "\<Psi>\<^sub>Q' \<simeq> \<one>" and "supp \<Psi>\<^sub>Q' = ({}::name set)"
[PROOF STATE]
proof (prove)
using this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
guarded Q

goal (1 subgoal):
 1. \<Psi>\<^sub>Q' \<simeq> \<one> &&& supp \<Psi>\<^sub>Q' = {}
[PROOF STEP]
by(blast dest: guardedStatEq)+
[PROOF STATE]
proof (state)
this:
\<Psi>\<^sub>Q' \<simeq> \<one>
supp \<Psi>\<^sub>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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "A\<^sub>Q' \<sharp>* \<Psi>\<^sub>Q'"
[PROOF STATE]
proof (prove)
using this:
\<Psi>\<^sub>Q' \<simeq> \<one>
supp \<Psi>\<^sub>Q' = {}

goal (1 subgoal):
 1. A\<^sub>Q' \<sharp>* \<Psi>\<^sub>Q'
[PROOF STEP]
by(auto simp add: fresh_star_def fresh_def)
[PROOF STATE]
proof (state)
this:
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>K\<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 NilImpP'': "\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)"
                             and P''Trans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<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''; \<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R); \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using FrQ' \<open>A\<^sub>Q' \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R\<close> freshCompChain
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
A\<^sub>Q' \<sharp>* \<Psi>
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R
\<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. (\<And>P''. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''; \<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R); \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(drule_tac weakTransitionE) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from PChain
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (P' \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
proof(induct rule: tauChainCases)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
case TauBase
[PROOF STATE]
proof (state)
this:
P = P''

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>M\<lparr>N\<rparr> \<prec> R'\<close> FrQ
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto>M\<lparr>N\<rparr> \<prec> R'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
note FrR
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from P''Trans \<open>P = P''\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
P = P''
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
P = P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
[PROOF STEP]
by(rule statEqTransition) (metis Identity AssertionStatEqSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
[PROOF STEP]
by(force intro: Par1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
[PROOF STEP]
by(rule Bang)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K\<close> FrQ
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

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

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> !P \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (P' \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K

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

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

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
case TauStep
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[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>* K" and "A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R" and "A\<^sub>P'' \<sharp>* R" and "A\<^sub>P'' \<sharp>* P''" and "A\<^sub>P'' \<sharp>* P"
                          and "A\<^sub>P'' \<sharp>* A\<^sub>R" 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>P'' \<sharp>* K; A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R; A\<^sub>P'' \<sharp>* R; A\<^sub>P'' \<sharp>* P''; A\<^sub>P'' \<sharp>* P; A\<^sub>P'' \<sharp>* A\<^sub>R; distinct A\<^sub>P''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, K, A\<^sub>R, \<Psi>\<^sub>R, R, P'', P)" 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>* K
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
A\<^sub>P'' \<sharp>* R
A\<^sub>P'' \<sharp>* P''
A\<^sub>P'' \<sharp>* P
A\<^sub>P'' \<sharp>* A\<^sub>R
distinct A\<^sub>P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[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(drule_tac tauChainFreshChain) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
with FrP'' \<open>A\<^sub>P'' \<sharp>* A\<^sub>R\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P''
[PROOF STEP]
have "A\<^sub>R \<sharp>* \<Psi>\<^sub>P''"
[PROOF STATE]
proof (prove)
using this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P''

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

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

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P
[PROOF STEP]
using \<open>guarded P\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P
guarded P

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

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
[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>\<^sub>\<tau> P'' \<parallel> !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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
[PROOF STEP]
by(rule_tac tauStepChainPar2) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (P' \<parallel> !P))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrQ \<open>\<Psi>\<^sub>Q' \<simeq> \<one>\<close> \<open>\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>M\<lparr>N\<rparr> \<prec> R'\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto>M\<lparr>N\<rparr> \<prec> R'"
[PROOF STATE]
proof (prove)
using this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from P''Trans
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'
[PROOF STEP]
by(rule statEqTransition) (metis Identity AssertionStatEqSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence P''PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto>K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
[PROOF STEP]
by(rule_tac Par1) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrP''
[PROOF STATE]
proof (chain)
picking this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
[PROOF STEP]
have FrP''P: "extractFrame(P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>"
[PROOF STATE]
proof (prove)
using this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>

goal (1 subgoal):
 1. extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrQ \<open>\<Psi>\<^sub>Q' \<simeq> \<one>\<close> \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
by simp (metis statEqEnt Composition AssertionStatEqSym Commutativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[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> \<one>)) \<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> \<one>) \<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> \<one>) \<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(rule_tac frameResChainPres, simp)
              (metis Associativity Commutativity Composition AssertionStatEqTrans AssertionStatEqSym)
[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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
from NilImpP'' FrQ FrP'' \<open>A\<^sub>P'' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R\<close> freshCompChain
[PROOF STATE]
proof (chain)
picking this:
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
\<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>')
[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:
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
\<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 auto
[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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(rule frameResChainPres, simp)
              (metis Identity AssertionStatEqSym Associativity Commutativity Composition AssertionStatEqTrans)
[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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
obtain M' where RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto>M'\<lparr>N\<rparr> \<prec> R'" and "\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'" and "A\<^sub>R \<sharp>* M'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. (\<And>M'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>N\<rparr> \<prec> R'; \<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'; A\<^sub>R \<sharp>* M'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using FrR FrQ' \<open>distinct A\<^sub>R\<close> \<open>distinct A\<^sub>P''\<close> \<open>A\<^sub>P'' \<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>* M\<close> \<open>A\<^sub>Q' \<sharp>* R\<close> \<open>A\<^sub>Q' \<sharp>* K\<close> \<open>A\<^sub>Q' \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>P'' \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* xvec\<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>* K\<close> \<open>xvec \<sharp>* K\<close> \<open>distinct xvec\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>N\<rparr> \<prec> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
distinct A\<^sub>R
distinct A\<^sub>P''
A\<^sub>P'' \<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>* M
A\<^sub>Q' \<sharp>* R
A\<^sub>Q' \<sharp>* K
A\<^sub>Q' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P
A\<^sub>P'' \<sharp>* P
A\<^sub>R \<sharp>* xvec
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* R
A\<^sub>P'' \<sharp>* P''
A\<^sub>P'' \<sharp>* K
xvec \<sharp>* K
distinct xvec

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
note RTrans FrR P''PTrans FrP''P
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'
[PROOF STEP]
have "\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'

goal (1 subgoal):
 1. \<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K
[PROOF STEP]
by(rule chanEqSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K
[PROOF STEP]
by(metis statEqEnt Composition AssertionStatEqSym Commutativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>N\<rparr> \<prec> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K

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

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> T
[PROOF STEP]
have "((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>') \<otimes> \<one> \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T

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

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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>') \<otimes> \<one> \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P
[PROOF STEP]
by(rule_tac tauChainPar1) auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P
[PROOF STEP]
by(rule tauChainStatEq) (metis Associativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<parallel> !P\<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P
[PROOF STEP]
using \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P
[PROOF STEP]
by(rule_tac tauChainStatEq) (auto intro: compositionSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<rhd> R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> (T \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> P' \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> T \<parallel> !P

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> (T \<parallel> !P)
[PROOF STEP]
by(rule_tac tauChainPar2) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> (T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>(R' \<parallel> (P' \<parallel> !P)) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (T \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> (T \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)
[PROOF STEP]
by(rule tauChainResChainPres)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (T \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P)
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (P' \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
have "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (T \<parallel> !P)), \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel''"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel\<close>
[PROOF STATE]
proof (chain)
picking this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>', T, S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>', T, S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>', T, S) \<in> Rel
[PROOF STEP]
by(rule StatEq) (metis Associativity)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>', T, S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>', T, S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel
[PROOF STEP]
using \<open>\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>', T, S) \<in> Rel
\<Psi>\<^sub>R \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel
[PROOF STEP]
by(rule_tac StatEq) (auto dest: compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
with FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close> \<open>A\<^sub>R' \<sharp>* S\<close> \<open>A\<^sub>R' \<sharp>* T\<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>* S
A\<^sub>R' \<sharp>* T
(\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel
[PROOF STEP]
have "(\<Psi>, R' \<parallel> T, R' \<parallel> S) \<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>* S
A\<^sub>R' \<sharp>* T
(\<Psi> \<otimes> \<Psi>\<^sub>R', T, S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> T, R' \<parallel> S) \<in> Rel
[PROOF STEP]
by(rule_tac FrameParPres) auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, R' \<parallel> T, R' \<parallel> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R' \<parallel> T) \<parallel> !P, (R' \<parallel> S) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> T, R' \<parallel> S) \<in> Rel

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> S) \<parallel> !P)) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> T \<parallel> !P, R' \<parallel> S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> T \<parallel> !P, R' \<parallel> S \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> S)) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* P\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>
xvec \<sharp>* P

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(force intro: Trans ScopeExt)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (T \<parallel> !P)), (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> S)) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> T \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(force intro: Trans ResPres Assoc)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<in> Rel\<close> \<open>guarded P\<close> \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q
[PROOF STEP]
have "(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> S)) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> S)) \<parallel> !Q) \<in> Rel''"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q

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

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<one>, Q', S \<parallel> !Q) \<in> Rel'\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<one>, Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
have "(\<one> \<otimes> \<Psi>, Q', S \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one>, Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<one> \<otimes> \<Psi>, Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule cExt')
[PROOF STATE]
proof (state)
this:
(\<one> \<otimes> \<Psi>, Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, Q', S \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one> \<otimes> \<Psi>, Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule StatEq') (metis Identity AssertionStatEqSym Commutativity AssertionStatEqTrans)
[PROOF STATE]
proof (state)
this:
(\<Psi>, Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R' \<parallel> Q', R' \<parallel> (S \<parallel> !Q)) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, Q', S \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R' \<parallel> Q', (R' \<parallel> S) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> (S \<parallel> !Q)) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> Q', R' \<parallel> S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(metis Trans' Assoc')
[PROOF STATE]
proof (state)
this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R' \<parallel> S) \<parallel> !Q, R' \<parallel> Q') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> S \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> S) \<parallel> !Q), \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> S \<parallel> !Q, R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> S \<parallel> !Q, R' \<parallel> Q') \<in> Rel'
xvec \<sharp>* \<Psi>

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* Q\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> S \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
xvec \<sharp>* \<Psi>
xvec \<sharp>* Q

goal (1 subgoal):
 1. (\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
by(force intro: Trans' ScopeExt'[THEN cSym'])
[PROOF STATE]
proof (state)
this:
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q) \<in> Rel''
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P) \<in> Rel
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q) \<in> Rel''
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> 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> R \<longmapsto> M\<lparr>N\<rparr> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<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>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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P)
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (T \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''

goal (1 subgoal):
 1. \<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>P'. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P' \<and> (\<Psi>, P', \<lparr>\<nu>*xvec\<rparr>R' \<parallel> 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
case(cComm2 \<Psi>\<^sub>Q M xvec N R' A\<^sub>R \<Psi>\<^sub>R K Q' A\<^sub>Q)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<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>R \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
distinct A\<^sub>Q
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
distinct xvec
A\<^sub>R \<sharp>* \<Psi>
A\<^sub>R \<sharp>* \<Psi>\<^sub>Q
A\<^sub>R \<sharp>* R
A\<^sub>R \<sharp>* M
A\<^sub>R \<sharp>* N
A\<^sub>R \<sharp>* R'
A\<^sub>R \<sharp>* !Q
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* Q'
A\<^sub>R \<sharp>* A\<^sub>Q
A\<^sub>R \<sharp>* (P, Q, R)
A\<^sub>Q \<sharp>* \<Psi>
A\<^sub>Q \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q \<sharp>* R
A\<^sub>Q \<sharp>* K
A\<^sub>Q \<sharp>* N
A\<^sub>Q \<sharp>* R'
A\<^sub>Q \<sharp>* !Q
A\<^sub>Q \<sharp>* xvec
A\<^sub>Q \<sharp>* Q'
A\<^sub>Q \<sharp>* (P, Q, R)
xvec \<sharp>* \<Psi>
xvec \<sharp>* \<Psi>\<^sub>R
xvec \<sharp>* R
xvec \<sharp>* M
xvec \<sharp>* K
xvec \<sharp>* !Q
xvec \<sharp>* \<Psi>\<^sub>Q
xvec \<sharp>* (P, Q, 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, Q, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R \<sharp>* (P, Q, R)
[PROOF STEP]
have "A\<^sub>R \<sharp>* P" and "A\<^sub>R \<sharp>* Q" and "A\<^sub>R \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R \<sharp>* (P, Q, R)

goal (1 subgoal):
 1. A\<^sub>R \<sharp>* P &&& A\<^sub>R \<sharp>* Q &&& A\<^sub>R \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, Q, R)\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* (P, Q, R)
[PROOF STEP]
have "xvec \<sharp>* P" and "xvec \<sharp>* Q" and "xvec \<sharp>* R"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* (P, Q, R)

goal (1 subgoal):
 1. xvec \<sharp>* P &&& xvec \<sharp>* Q &&& xvec \<sharp>* R
[PROOF STEP]
by simp+
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* P
xvec \<sharp>* Q
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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'\<close> FrR \<open>distinct A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* R\<close> \<open>A\<^sub>R \<sharp>* N\<close> \<open>A\<^sub>R \<sharp>* xvec\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>R \<sharp>* Q\<close> \<open>A\<^sub>R \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* R\<close> \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* P\<close> \<open>xvec \<sharp>* Q\<close> \<open>xvec \<sharp>* M\<close> \<open>distinct xvec\<close> \<open>A\<^sub>R \<sharp>* M\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<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>* N
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
xvec \<sharp>* R
xvec \<sharp>* \<Psi>
xvec \<sharp>* P
xvec \<sharp>* Q
xvec \<sharp>* M
distinct xvec
A\<^sub>R \<sharp>* M
[PROOF STEP]
obtain p A\<^sub>R' \<Psi>\<^sub>R' \<Psi>' where 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>* xvec" and "A\<^sub>R' \<sharp>* P" and "A\<^sub>R' \<sharp>* Q" and "A\<^sub>R' \<sharp>* \<Psi>" and S: "set p \<subseteq> set xvec \<times> set(p \<bullet> xvec)" and "distinctPerm p" and "(p \<bullet> xvec) \<sharp>* N" and "(p \<bullet> xvec) \<sharp>* Q" and "(p \<bullet> xvec) \<sharp>* R'" and "(p \<bullet> xvec) \<sharp>* P" and "(p \<bullet> xvec) \<sharp>* \<Psi>" and "A\<^sub>R' \<sharp>* N" and "A\<^sub>R' \<sharp>* xvec" and "A\<^sub>R' \<sharp>* (p \<bullet> xvec)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<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>* N
A\<^sub>R \<sharp>* xvec
A\<^sub>R \<sharp>* P
A\<^sub>R \<sharp>* Q
A\<^sub>R \<sharp>* \<Psi>
xvec \<sharp>* R
xvec \<sharp>* \<Psi>
xvec \<sharp>* P
xvec \<sharp>* Q
xvec \<sharp>* M
distinct xvec
A\<^sub>R \<sharp>* M

goal (1 subgoal):
 1. (\<And>A\<^sub>R' \<Psi>\<^sub>R' p \<Psi>'. \<lbrakk>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>* xvec; A\<^sub>R' \<sharp>* P; A\<^sub>R' \<sharp>* Q; A\<^sub>R' \<sharp>* \<Psi>; set p \<subseteq> set xvec \<times> set (p \<bullet> xvec); distinctPerm p; (p \<bullet> xvec) \<sharp>* N; (p \<bullet> xvec) \<sharp>* Q; (p \<bullet> xvec) \<sharp>* R'; (p \<bullet> xvec) \<sharp>* P; (p \<bullet> xvec) \<sharp>* \<Psi>; A\<^sub>R' \<sharp>* N; A\<^sub>R' \<sharp>* xvec; A\<^sub>R' \<sharp>* (p \<bullet> xvec)\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, P, Q)"  and C'="(\<Psi>, P, Q)" in expandFrame) (assumption | simp)+
[PROOF STATE]
proof (state)
this:
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>* xvec
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
distinctPerm p
(p \<bullet> xvec) \<sharp>* N
(p \<bullet> xvec) \<sharp>* Q
(p \<bullet> xvec) \<sharp>* R'
(p \<bullet> xvec) \<sharp>* P
(p \<bullet> xvec) \<sharp>* \<Psi>
A\<^sub>R' \<sharp>* N
A\<^sub>R' \<sharp>* xvec
A\<^sub>R' \<sharp>* (p \<bullet> 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'\<close> S \<open>(p \<bullet> xvec) \<sharp>* N\<close> \<open>(p \<bullet> xvec) \<sharp>* R'\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> xvec) \<sharp>* N
(p \<bullet> xvec) \<sharp>* R'
[PROOF STEP]
have  RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto>M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> (p \<bullet> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> R'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> xvec) \<sharp>* N
(p \<bullet> xvec) \<sharp>* R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
[PROOF STEP]
by(simp add: boundOutputChainAlpha'' residualInject)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<in> Rel\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> Rel
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel
[PROOF STEP]
by(rule cExt)
[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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>R \<rhd> !Q \<longmapsto>K\<lparr>N\<rparr> \<prec> Q'\<close> S \<open>(p \<bullet> xvec) \<sharp>* Q\<close> \<open>xvec \<sharp>* Q\<close> \<open>distinctPerm p\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> xvec) \<sharp>* Q
xvec \<sharp>* Q
distinctPerm p
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> (p \<bullet> Q')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> xvec) \<sharp>* Q
xvec \<sharp>* Q
distinctPerm p

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> p \<bullet> Q'
[PROOF STEP]
by(rule_tac inputAlpha) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> p \<bullet> 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> p \<bullet> Q'
[PROOF STEP]
obtain S where QTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> S" and "(\<one>, (p \<bullet> Q'), S \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> p \<bullet> Q'

goal (1 subgoal):
 1. (\<And>S. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S; (\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using \<open>guarded Q\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> p \<bullet> Q'
guarded Q

goal (1 subgoal):
 1. (\<And>S. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S; (\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: rBangActE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S
(\<one>, p \<bullet> Q', S \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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, P, Q) \<in> Rel
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S
(\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
obtain P' T where PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'"
                             and P'Chain: "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T"
                             and "((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R, P, Q) \<in> Rel
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S
(\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<And>P' T. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'; (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T; ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<in> Rel\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(fastforce dest: cSim weakSimE)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>* N\<close> \<open>A\<^sub>R' \<sharp>* xvec\<close> \<open>A\<^sub>R' \<sharp>* (p \<bullet> xvec)\<close> S
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R' \<sharp>* N
A\<^sub>R' \<sharp>* xvec
A\<^sub>R' \<sharp>* (p \<bullet> xvec)
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
[PROOF STEP]
have "A\<^sub>R' \<sharp>* (p \<bullet> N)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R' \<sharp>* N
A\<^sub>R' \<sharp>* xvec
A\<^sub>R' \<sharp>* (p \<bullet> xvec)
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)

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

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
with PTrans \<open>A\<^sub>R' \<sharp>* P\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* (p \<bullet> N)
[PROOF STEP]
have "A\<^sub>R' \<sharp>* P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
A\<^sub>R' \<sharp>* P
A\<^sub>R' \<sharp>* (p \<bullet> N)

goal (1 subgoal):
 1. A\<^sub>R' \<sharp>* P'
[PROOF STEP]
by(force dest: weakInputFreshChainDerivative)
[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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
A\<^sub>R' \<sharp>* P'
[PROOF STEP]
have "A\<^sub>R' \<sharp>* T"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
A\<^sub>R' \<sharp>* P'

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

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from QTrans \<open>A\<^sub>R' \<sharp>* Q\<close> \<open>A\<^sub>R' \<sharp>* (p \<bullet> N)\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* (p \<bullet> N)
[PROOF STEP]
have "A\<^sub>R' \<sharp>* S"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> Q \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> S
A\<^sub>R' \<sharp>* Q
A\<^sub>R' \<sharp>* (p \<bullet> N)

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

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
obtain A\<^sub>Q' \<Psi>\<^sub>Q' where FrQ': "extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>" and "A\<^sub>Q' \<sharp>* \<Psi>" and "A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R" and "A\<^sub>Q' \<sharp>* A\<^sub>R" and "A\<^sub>Q' \<sharp>* M" and "A\<^sub>Q' \<sharp>* R" and "A\<^sub>Q' \<sharp>* K"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<And>A\<^sub>Q' \<Psi>\<^sub>Q'. \<lbrakk>extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>; A\<^sub>Q' \<sharp>* \<Psi>; A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R; A\<^sub>Q' \<sharp>* A\<^sub>R; A\<^sub>Q' \<sharp>* M; A\<^sub>Q' \<sharp>* R; A\<^sub>Q' \<sharp>* K\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, \<Psi>\<^sub>R, A\<^sub>R, K, M, R)" in freshFrame) auto
[PROOF STATE]
proof (state)
this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
A\<^sub>Q' \<sharp>* \<Psi>
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R
A\<^sub>Q' \<sharp>* A\<^sub>R
A\<^sub>Q' \<sharp>* M
A\<^sub>Q' \<sharp>* R
A\<^sub>Q' \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from FrQ' \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
guarded Q
[PROOF STEP]
have "\<Psi>\<^sub>Q' \<simeq> \<one>" and "supp \<Psi>\<^sub>Q' = ({}::name set)"
[PROOF STATE]
proof (prove)
using this:
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
guarded Q

goal (1 subgoal):
 1. \<Psi>\<^sub>Q' \<simeq> \<one> &&& supp \<Psi>\<^sub>Q' = {}
[PROOF STEP]
by(blast dest: guardedStatEq)+
[PROOF STATE]
proof (state)
this:
\<Psi>\<^sub>Q' \<simeq> \<one>
supp \<Psi>\<^sub>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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "A\<^sub>Q' \<sharp>* \<Psi>\<^sub>Q'"
[PROOF STATE]
proof (prove)
using this:
\<Psi>\<^sub>Q' \<simeq> \<one>
supp \<Psi>\<^sub>Q' = {}

goal (1 subgoal):
 1. A\<^sub>Q' \<sharp>* \<Psi>\<^sub>Q'
[PROOF STEP]
by(auto simp add: fresh_star_def fresh_def)
[PROOF STATE]
proof (state)
this:
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
[PROOF STEP]
obtain P'' where PChain: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''"
                             and NilImpP'': "\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)"
                             and P''Trans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. (\<And>P''. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''; \<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R); \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using FrQ' \<open>A\<^sub>Q' \<sharp>* \<Psi>\<close> \<open>A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R\<close> freshCompChain
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R : Q \<rhd> P \<Longrightarrow>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
A\<^sub>Q' \<sharp>* \<Psi>
A\<^sub>Q' \<sharp>* \<Psi>\<^sub>R
\<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. (\<And>P''. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''; \<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R); \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(drule_tac weakTransitionE) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(p \<bullet> xvec) \<sharp>* P\<close> \<open>xvec \<sharp>* P\<close> PChain
[PROOF STATE]
proof (chain)
picking this:
(p \<bullet> xvec) \<sharp>* P
xvec \<sharp>* P
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''
[PROOF STEP]
have "(p \<bullet> xvec) \<sharp>* P''" and "xvec \<sharp>* P''"
[PROOF STATE]
proof (prove)
using this:
(p \<bullet> xvec) \<sharp>* P
xvec \<sharp>* P
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sup>^\<^sub>\<tau> P''

goal (1 subgoal):
 1. (p \<bullet> xvec) \<sharp>* P'' &&& xvec \<sharp>* P''
[PROOF STEP]
by(force dest: tauChainFreshChain)+
[PROOF STATE]
proof (state)
this:
(p \<bullet> xvec) \<sharp>* P''
xvec \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(p \<bullet> xvec) \<sharp>* N\<close> \<open>distinctPerm p\<close>
[PROOF STATE]
proof (chain)
picking this:
(p \<bullet> xvec) \<sharp>* N
distinctPerm p
[PROOF STEP]
have "xvec \<sharp>* (p \<bullet> N)"
[PROOF STATE]
proof (prove)
using this:
(p \<bullet> xvec) \<sharp>* N
distinctPerm p

goal (1 subgoal):
 1. xvec \<sharp>* (p \<bullet> N)
[PROOF STEP]
by(subst pt_fresh_star_bij[OF pt_name_inst, OF at_name_inst, where pi=p, symmetric]) simp
[PROOF STATE]
proof (state)
this:
xvec \<sharp>* (p \<bullet> N)

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>* P''\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
xvec \<sharp>* P''
xvec \<sharp>* (p \<bullet> N)
[PROOF STEP]
have "xvec \<sharp>* P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
xvec \<sharp>* P''
xvec \<sharp>* (p \<bullet> N)

goal (1 subgoal):
 1. xvec \<sharp>* P'
[PROOF STEP]
by(force dest: inputFreshChainDerivative)
[PROOF STATE]
proof (state)
this:
xvec \<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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(p \<bullet> xvec) \<sharp>* (p \<bullet> P')"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* P'

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
proof(induct rule: tauChainCases)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
case TauBase
[PROOF STATE]
proof (state)
this:
P = P''

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from RTrans FrQ
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto>M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> (p \<bullet> R')"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

goal (1 subgoal):
 1. \<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
note FrR
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from P''Trans \<open>P = P''\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
P = P''
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr>\<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
P = P''

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

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
[PROOF STEP]
by(rule statEqTransition) (metis Identity AssertionStatEqSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
[PROOF STEP]
by(force intro: Par1)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
[PROOF STEP]
using \<open>guarded P\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
guarded P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
[PROOF STEP]
by(rule Bang)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K\<close> FrQ
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>

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

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> !P \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*(p \<bullet> xvec)\<rparr>((p \<bullet> R') \<parallel> (P' \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<one> \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<one> \<turnstile> M \<leftrightarrow> K

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

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

goal (2 subgoals):
 1. P = P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
 2. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
case TauStep
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[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>* K" and "A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R" and "A\<^sub>P'' \<sharp>* R" and "A\<^sub>P'' \<sharp>* P''" and "A\<^sub>P'' \<sharp>* P"
                          and "A\<^sub>P'' \<sharp>* A\<^sub>R" 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>P'' \<sharp>* K; A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R; A\<^sub>P'' \<sharp>* R; A\<^sub>P'' \<sharp>* P''; A\<^sub>P'' \<sharp>* P; A\<^sub>P'' \<sharp>* A\<^sub>R; distinct A\<^sub>P''\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by(rule_tac C="(\<Psi>, K, A\<^sub>R, \<Psi>\<^sub>R, R, P'', P)" 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>* K
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
A\<^sub>P'' \<sharp>* R
A\<^sub>P'' \<sharp>* P''
A\<^sub>P'' \<sharp>* P
A\<^sub>P'' \<sharp>* A\<^sub>R
distinct A\<^sub>P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[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(drule_tac tauChainFreshChain) auto
[PROOF STATE]
proof (state)
this:
A\<^sub>R \<sharp>* P''

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
with FrP'' \<open>A\<^sub>P'' \<sharp>* A\<^sub>R\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P''
[PROOF STEP]
have "A\<^sub>R \<sharp>* \<Psi>\<^sub>P''"
[PROOF STATE]
proof (prove)
using this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P''

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P \<Longrightarrow>\<^sub>\<tau> P''

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P
[PROOF STEP]
using \<open>guarded P\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P
guarded P

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

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence  "\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> !P \<Longrightarrow>\<^sub>\<tau> P'' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
[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>\<^sub>\<tau> P'' \<parallel> !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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
[PROOF STEP]
by(rule_tac tauStepChainPar2) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto>\<tau> \<prec> \<lparr>\<nu>*(p \<bullet> xvec)\<rparr>((p \<bullet> R') \<parallel> (P' \<parallel> !P))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrQ \<open>\<Psi>\<^sub>Q' \<simeq> \<one>\<close> RTrans
[PROOF STATE]
proof (chain)
picking this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto>M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> (p \<bullet> R')"
[PROOF STATE]
proof (prove)
using this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>Q \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
[PROOF STEP]
by simp (metis statEqTransition AssertionStatEqSym compositionSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from P''Trans
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
[PROOF STEP]
have "(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'
[PROOF STEP]
by(rule statEqTransition) (metis Identity AssertionStatEqSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence P''PTrans: "\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto>K\<lparr>(p \<bullet> N)\<rparr> \<prec> (P' \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<one> \<rhd> P'' \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
[PROOF STEP]
by(rule_tac Par1) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrP''
[PROOF STATE]
proof (chain)
picking this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
[PROOF STEP]
have FrP''P: "extractFrame(P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>"
[PROOF STATE]
proof (prove)
using this:
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>

goal (1 subgoal):
 1. extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from FrQ \<open>\<Psi>\<^sub>Q' \<simeq> \<one>\<close> \<open>\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K\<close>
[PROOF STATE]
proof (chain)
picking this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
have "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
\<Psi>\<^sub>Q' \<simeq> \<one>
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>Q \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K
[PROOF STEP]
by simp (metis statEqEnt Composition AssertionStatEqSym Commutativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> M \<leftrightarrow> K

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[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> \<one>)) \<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> \<one>) \<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> \<one>) \<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(rule_tac frameResChainPres, simp)
              (metis Associativity Commutativity Composition AssertionStatEqTrans AssertionStatEqSym)
[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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
from NilImpP'' FrQ FrP'' \<open>A\<^sub>P'' \<sharp>* \<Psi>\<close> \<open>A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R\<close> freshCompChain
[PROOF STATE]
proof (chain)
picking this:
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
\<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>')
[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:
\<langle>A\<^sub>Q', (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> \<Psi>\<^sub>Q'\<rangle> \<hookrightarrow>\<^sub>F insertAssertion (extractFrame P'') (\<Psi> \<otimes> \<Psi>\<^sub>R)
extractFrame (!Q) = \<langle>A\<^sub>Q, \<Psi>\<^sub>Q\<rangle>
extractFrame P'' = \<langle>A\<^sub>P'', \<Psi>\<^sub>P''\<rangle>
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* \<Psi>\<^sub>R
\<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 auto
[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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
by(rule frameResChainPres, simp)
              (metis Identity AssertionStatEqSym Associativity Commutativity Composition AssertionStatEqTrans)
[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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
[PROOF STEP]
obtain M' where RTrans: "\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto>M'\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> (p \<bullet> R')" and "\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'" and "A\<^sub>R \<sharp>* M'"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>

goal (1 subgoal):
 1. (\<And>M'. \<lbrakk>\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'; \<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'; A\<^sub>R \<sharp>* M'\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
using FrR FrQ' \<open>distinct A\<^sub>R\<close> \<open>distinct A\<^sub>P''\<close> \<open>A\<^sub>P'' \<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>* M\<close> \<open>A\<^sub>Q' \<sharp>* R\<close> \<open>A\<^sub>Q' \<sharp>* K\<close> \<open>A\<^sub>Q' \<sharp>* A\<^sub>R\<close> \<open>A\<^sub>R \<sharp>* P\<close> \<open>A\<^sub>P'' \<sharp>* P\<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>* K\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<rhd> R \<longmapsto> M\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>Q' \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M
\<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> \<one>) \<otimes> \<Psi>\<^sub>R\<rangle>
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
extractFrame Q = \<langle>A\<^sub>Q', \<Psi>\<^sub>Q'\<rangle>
distinct A\<^sub>R
distinct A\<^sub>P''
A\<^sub>P'' \<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>* M
A\<^sub>Q' \<sharp>* R
A\<^sub>Q' \<sharp>* K
A\<^sub>Q' \<sharp>* A\<^sub>R
A\<^sub>R \<sharp>* P
A\<^sub>P'' \<sharp>* P
A\<^sub>P'' \<sharp>* \<Psi>
A\<^sub>P'' \<sharp>* R
A\<^sub>P'' \<sharp>* P''
A\<^sub>P'' \<sharp>* K

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
note RTrans FrR P''PTrans FrP''P
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<rhd> R \<longmapsto> M'\<lparr>\<nu>*(p \<bullet> xvec)\<rparr>\<langle>(p \<bullet> N)\<rangle> \<prec> p \<bullet> R'
extractFrame R = \<langle>A\<^sub>R, \<Psi>\<^sub>R\<rangle>
\<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P'' \<parallel> !P \<longmapsto> K\<lparr>(p \<bullet> N)\<rparr> \<prec> P' \<parallel> !P
extractFrame (P'' \<parallel> !P) = \<langle>A\<^sub>P'', \<Psi>\<^sub>P'' \<otimes> \<one>\<rangle>

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
from \<open>\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'\<close>
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'
[PROOF STEP]
have "\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> K \<leftrightarrow> M'

goal (1 subgoal):
 1. \<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K
[PROOF STEP]
by(rule chanEqSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (\<Psi>\<^sub>P'' \<otimes> \<one>) \<otimes> \<Psi>\<^sub>R \<turnstile> M' \<leftrightarrow> K

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K
[PROOF STEP]
by(metis statEqEnt Composition AssertionStatEqSym Commutativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R \<otimes> \<Psi>\<^sub>P'' \<otimes> \<one> \<turnstile> M' \<leftrightarrow> K

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

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

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R \<rhd> P \<Longrightarrow>\<^sub>\<tau> P'' \<Longrightarrow> \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> R \<parallel> (P'' \<parallel> !P)
\<Psi> \<rhd> R \<parallel> (P'' \<parallel> !P) \<longmapsto> \<tau> \<prec> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> ((p \<bullet> P') \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*p \<bullet> xvec\<rparr>(p \<bullet> R') \<parallel> (P' \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P)
[PROOF STEP]
by(subst resChainAlpha[where p=p]) auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T
[PROOF STEP]
have "(p \<bullet> ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'))) \<rhd> (p \<bullet> P') \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> T

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

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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 \<open>distinctPerm p\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
distinctPerm p
p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T
[PROOF STEP]
have "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T)"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
distinctPerm p
p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>') \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T

goal (1 subgoal):
 1. (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>') \<otimes> \<one> \<rhd> (p \<bullet> P') \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T)"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T

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

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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>') \<otimes> \<one> \<rhd> p \<bullet> P' \<Longrightarrow>\<^sup>^\<^sub>\<tau> p \<bullet> T

goal (1 subgoal):
 1. (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P
[PROOF STEP]
by(rule_tac tauChainPar1) auto
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P
[PROOF STEP]
by(rule tauChainStatEq) (metis Associativity)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P
[PROOF STEP]
using \<open>(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq>  \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. \<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P
[PROOF STEP]
by(rule_tac tauChainStatEq) (auto intro: compositionSym)
[PROOF STATE]
proof (state)
this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "\<Psi> \<rhd> R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> ((p \<bullet> T) \<parallel> !P)"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<otimes> \<Psi>\<^sub>R' \<rhd> (p \<bullet> P') \<parallel> !P \<Longrightarrow>\<^sup>^\<^sub>\<tau> (p \<bullet> T) \<parallel> !P

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

goal (1 subgoal):
 1. \<Psi> \<rhd> R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> ((p \<bullet> T) \<parallel> !P)
[PROOF STEP]
by(rule_tac tauChainPar2) (auto simp add: freshChainSimps)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> ((p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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>(R' \<parallel> ((p \<bullet> P') \<parallel> !P)) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> ((p \<bullet> T) \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> R' \<parallel> ((p \<bullet> T) \<parallel> !P)

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

goal (1 subgoal):
 1. \<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)
[PROOF STEP]
by(rule tauChainResChainPres)
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P)
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)
[PROOF STEP]
have "\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> ((p \<bullet> T) \<parallel> !P))"
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P)
\<Psi> \<rhd> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> P') \<parallel> !P) \<Longrightarrow>\<^sup>^\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)

goal (1 subgoal):
 1. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> P'a \<and> (\<Psi>, P'a, \<lparr>\<nu>*xvec\<rparr>P' \<parallel> Q') \<in> Rel''
[PROOF STEP]
have "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> ((p \<bullet> T) \<parallel> !P)), \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel''"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<in> Rel\<close>
[PROOF STATE]
proof (chain)
picking this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<in> Rel
[PROOF STEP]
have "(p \<bullet> ((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>')), (p \<bullet> T), (p \<bullet> S)) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), T, S) \<in> Rel

goal (1 subgoal):
 1. (p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
by(rule Closed)
[PROOF STATE]
proof (state)
this:
(p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
with \<open>xvec \<sharp>* \<Psi>\<close> \<open>(p \<bullet> xvec) \<sharp>* \<Psi>\<close> \<open>distinctPerm p\<close> S
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
distinctPerm p
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
have "((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* \<Psi>
(p \<bullet> xvec) \<sharp>* \<Psi>
distinctPerm p
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
(p \<bullet> (\<Psi> \<otimes> \<Psi>\<^sub>R) \<otimes> (p \<bullet> \<Psi>'), p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. ((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
((\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R)) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
by(rule StatEq) (metis Associativity)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
using \<open>(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> (p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>', p \<bullet> T, p \<bullet> S) \<in> Rel
(p \<bullet> \<Psi>\<^sub>R) \<otimes> \<Psi>' \<simeq> \<Psi>\<^sub>R'

goal (1 subgoal):
 1. (\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel
[PROOF STEP]
by(rule_tac StatEq) (auto dest: compositionSym)
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>A\<^sub>R' \<sharp>* S\<close> \<open>A\<^sub>R' \<sharp>* T\<close> \<open>A\<^sub>R' \<sharp>* xvec\<close> \<open>A\<^sub>R' \<sharp>* (p \<bullet> xvec)\<close> S
[PROOF STATE]
proof (chain)
picking this:
A\<^sub>R' \<sharp>* S
A\<^sub>R' \<sharp>* T
A\<^sub>R' \<sharp>* xvec
A\<^sub>R' \<sharp>* (p \<bullet> xvec)
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
[PROOF STEP]
have "A\<^sub>R' \<sharp>* (p \<bullet> S)" and "A\<^sub>R' \<sharp>* (p \<bullet> T)"
[PROOF STATE]
proof (prove)
using this:
A\<^sub>R' \<sharp>* S
A\<^sub>R' \<sharp>* T
A\<^sub>R' \<sharp>* xvec
A\<^sub>R' \<sharp>* (p \<bullet> xvec)
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel
A\<^sub>R' \<sharp>* (p \<bullet> S)
A\<^sub>R' \<sharp>* (p \<bullet> T)
[PROOF STEP]
have "(\<Psi>, R' \<parallel> (p \<bullet> T), R' \<parallel> (p \<bullet> S)) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel
A\<^sub>R' \<sharp>* (p \<bullet> S)
A\<^sub>R' \<sharp>* (p \<bullet> T)

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> (p \<bullet> T), R' \<parallel> (p \<bullet> S)) \<in> Rel
[PROOF STEP]
using FrR' \<open>A\<^sub>R' \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi> \<otimes> \<Psi>\<^sub>R', p \<bullet> T, p \<bullet> S) \<in> Rel
A\<^sub>R' \<sharp>* (p \<bullet> S)
A\<^sub>R' \<sharp>* (p \<bullet> T)
extractFrame R' = \<langle>A\<^sub>R', \<Psi>\<^sub>R'\<rangle>
A\<^sub>R' \<sharp>* \<Psi>

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> (p \<bullet> T), R' \<parallel> (p \<bullet> S)) \<in> Rel
[PROOF STEP]
by(rule_tac FrameParPres) auto
[PROOF STATE]
proof (state)
this:
(\<Psi>, R' \<parallel> (p \<bullet> T), R' \<parallel> (p \<bullet> S)) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R' \<parallel> (p \<bullet> T)) \<parallel> !P, (R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> (p \<bullet> T), R' \<parallel> (p \<bullet> S)) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> (p \<bullet> T) \<parallel> !P, R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(rule ParPres)
[PROOF STATE]
proof (state)
this:
(\<Psi>, R' \<parallel> (p \<bullet> T) \<parallel> !P, R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> (p \<bullet> T)) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> (p \<bullet> S)) \<parallel> !P)) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> (p \<bullet> T) \<parallel> !P, R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> (p \<bullet> T) \<parallel> !P, R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(rule ResPres)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> T)) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> S))) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* P\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>
xvec \<sharp>* P

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(force intro: Trans ScopeExt)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> ((p \<bullet> T) \<parallel> !P)), (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> S))) \<parallel> !P) \<in> Rel"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> T) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
[PROOF STEP]
by(force intro: Trans ResPres Assoc)
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<Psi>, P, Q) \<in> Rel\<close> \<open>guarded P\<close> \<open>guarded Q\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q
[PROOF STEP]
have "(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> S))) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> S))) \<parallel> !Q) \<in> Rel''"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, P, Q) \<in> Rel
guarded P
guarded Q

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q) \<in> Rel''

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
from \<open>(\<one>, (p \<bullet> Q'), S \<parallel> !Q) \<in> Rel'\<close>
[PROOF STATE]
proof (chain)
picking this:
(\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
have "(p \<bullet> \<one>, p \<bullet> p \<bullet> Q', p \<bullet> (S \<parallel> !Q)) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one>, p \<bullet> Q', S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (p \<bullet> \<one>, p \<bullet> p \<bullet> Q', p \<bullet> S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule Closed')
[PROOF STATE]
proof (state)
this:
(p \<bullet> \<one>, p \<bullet> p \<bullet> Q', p \<bullet> S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
with \<open>xvec \<sharp>* Q\<close> \<open>(p \<bullet> xvec) \<sharp>* Q\<close> S \<open>distinctPerm p\<close>
[PROOF STATE]
proof (chain)
picking this:
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
distinctPerm p
(p \<bullet> \<one>, p \<bullet> p \<bullet> Q', p \<bullet> S \<parallel> !Q) \<in> Rel'
[PROOF STEP]
have "(\<one>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
xvec \<sharp>* Q
(p \<bullet> xvec) \<sharp>* Q
set p \<subseteq> set xvec \<times> set (p \<bullet> xvec)
distinctPerm p
(p \<bullet> \<one>, p \<bullet> p \<bullet> Q', p \<bullet> S \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<one>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(simp add: eqvts)
[PROOF STATE]
proof (state)
this:
(\<one>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<one> \<otimes> \<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<one> \<otimes> \<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule cExt')
[PROOF STATE]
proof (state)
this:
(\<one> \<otimes> \<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<one> \<otimes> \<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(rule StatEq') (metis Identity AssertionStatEqSym Commutativity AssertionStatEqTrans)
[PROOF STATE]
proof (state)
this:
(\<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R' \<parallel> Q', R' \<parallel> ((p \<bullet> S) \<parallel> !Q)) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, Q', (p \<bullet> S) \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, R' \<parallel> Q', (R' \<parallel> (p \<bullet> S)) \<parallel> !Q) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> ((p \<bullet> S) \<parallel> !Q)) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, R' \<parallel> Q', R' \<parallel> (p \<bullet> S) \<parallel> !Q) \<in> Rel'
[PROOF STEP]
by(metis Trans' Assoc')
[PROOF STATE]
proof (state)
this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> (p \<bullet> S) \<parallel> !Q) \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (R' \<parallel> (p \<bullet> S)) \<parallel> !Q, R' \<parallel> Q') \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> Q', R' \<parallel> (p \<bullet> S) \<parallel> !Q) \<in> Rel'

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

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, \<lparr>\<nu>*xvec\<rparr>((R' \<parallel> (p \<bullet> S)) \<parallel> !Q), \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> (p \<bullet> S) \<parallel> !Q, R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, R' \<parallel> (p \<bullet> S) \<parallel> !Q, R' \<parallel> Q') \<in> Rel'
xvec \<sharp>* \<Psi>

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
by(rule ResPres')
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
hence "(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>(R' \<parallel> (p \<bullet> S))) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>(R' \<parallel> Q')) \<in> Rel'"
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
using \<open>xvec \<sharp>* \<Psi>\<close> \<open>xvec \<sharp>* Q\<close>
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
xvec \<sharp>* \<Psi>
xvec \<sharp>* Q

goal (1 subgoal):
 1. (\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
by(force intro: Trans' ScopeExt'[THEN cSym'])
[PROOF STATE]
proof (state)
this:
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

goal (1 subgoal):
 1. (\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q) \<in> Rel''
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P) \<in> Rel
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !P, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q) \<in> Rel''
(\<Psi>, (\<lparr>\<nu>*xvec\<rparr>R' \<parallel> (p \<bullet> S)) \<parallel> !Q, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel'

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

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> 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> R \<longmapsto> M\<lparr>\<nu>*xvec\<rparr>\<langle>N\<rangle> \<prec> P'; extractFrame R = \<langle>A\<^sub>P, \<Psi>\<^sub>P\<rangle>; distinct A\<^sub>P; \<Psi> \<otimes> \<Psi>\<^sub>P \<rhd> !Q \<longmapsto> K\<lparr>N\<rparr> \<prec> Q'; extractFrame (!Q) = \<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>* R; A\<^sub>P \<sharp>* M; A\<^sub>P \<sharp>* N; A\<^sub>P \<sharp>* P'; A\<^sub>P \<sharp>* !Q; A\<^sub>P \<sharp>* xvec; A\<^sub>P \<sharp>* Q'; A\<^sub>P \<sharp>* A\<^sub>Q; A\<^sub>P \<sharp>* (P, Q, R); A\<^sub>Q \<sharp>* \<Psi>; A\<^sub>Q \<sharp>* \<Psi>\<^sub>P; A\<^sub>Q \<sharp>* R; A\<^sub>Q \<sharp>* K; A\<^sub>Q \<sharp>* N; A\<^sub>Q \<sharp>* P'; A\<^sub>Q \<sharp>* !Q; A\<^sub>Q \<sharp>* xvec; A\<^sub>Q \<sharp>* Q'; A\<^sub>Q \<sharp>* (P, Q, R); xvec \<sharp>* \<Psi>; xvec \<sharp>* \<Psi>\<^sub>P; xvec \<sharp>* R; xvec \<sharp>* M; xvec \<sharp>* K; xvec \<sharp>* !Q; xvec \<sharp>* \<Psi>\<^sub>Q; xvec \<sharp>* (P, Q, R)\<rbrakk> \<Longrightarrow> \<exists>P'a. \<Psi> \<rhd> R \<parallel> !P \<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> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<Psi> \<rhd> R \<parallel> !P \<Longrightarrow>\<^sub>\<tau> \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P)
(\<Psi>, \<lparr>\<nu>*xvec\<rparr>R' \<parallel> ((p \<bullet> T) \<parallel> !P), \<lparr>\<nu>*xvec\<rparr>R' \<parallel> Q') \<in> Rel''

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

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

goal:
No subgoals!
[PROOF STEP]
qed