[STATEMENT]
lemma generalized_zipping_lemma4:
"\<lbrakk>  \<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>;
  BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>);
  FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>;
  C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>;
  N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {} \<rbrakk> \<Longrightarrow>
  \<forall> \<tau> lambda t1 t2. ( ( set \<tau> \<subseteq> (E\<^bsub>(ES1 \<parallel> ES2)\<^esub>) \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub>  \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub>
  \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> ((\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1) \<in> Tr\<^bsub>ES1\<^esub> \<and> ((\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2) \<in> Tr\<^bsub>ES2\<^esub>
  \<and> (lambda \<upharpoonleft> E\<^bsub>ES1\<^esub>) = (t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>) \<and> (lambda \<upharpoonleft> E\<^bsub>ES2\<^esub>) = (t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>)
  \<and> (t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub>) = [] \<and> (t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub>) = [])
  \<longrightarrow> (\<exists>t. ((\<tau> @ t) \<in> (Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>) \<and> (t \<upharpoonleft> V\<^bsub>\<V>\<^esub>) = lambda \<and> (t \<upharpoonleft> C\<^bsub>\<V>\<^esub>) = [])) )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
assume Nabla1_subsetof_E1: "\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>"
  and Delta1_subsetof_E1: "\<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>"
  and Upsilon1_subsetof_E1: "\<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>"
  and Nabla2_subsetof_E2: "\<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>"
  and Delta2_subsetof_E2: "\<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>"
  and Upsilon2_subsetof_E2: "\<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>"
  and BSIA1: "BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>"
  and BSIA2: "BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>"
  and ES1_total_Cv1_inter_Nv2: "total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)"
  and ES2_total_Cv2_inter_Nv1: "total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)"
  and FCIA1: "FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>"
  and FCIA2: "FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>"
  and Vv1_inter_Vv2_subsetof_Nabla1_union_Nabla2: "V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>"
  and Cv1_inter_Nv2_subsetof_Upsilon1: "C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>"
  and Cv2_inter_Nv1_subsetof_Upsilon2: "C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>"
  and disjoint_Nv1_inter_Delta1_inter_E2: "N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}"
  and disjoint_Nv2_inter_Delta2_inter_E1: "N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}"
[PROOF STATE]
proof (state)
this:
\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
\<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
\<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>
FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>
V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}
N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}

goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>
\<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
\<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
\<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>
FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>
V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}
N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}

goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
fix \<tau> lambda t1 t2
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
have "\<lbrakk> set \<tau> \<subseteq> (E\<^bsub>(ES1 \<parallel> ES2)\<^esub>);
      set lambda \<subseteq> V\<^bsub>\<V>\<^esub>;
      set t1 \<subseteq> E\<^bsub>ES1\<^esub>;
      set t2 \<subseteq> E\<^bsub>ES2\<^esub>;
      ((\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1) \<in> Tr\<^bsub>ES1\<^esub>;
      ((\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2) \<in> Tr\<^bsub>ES2\<^esub>;
      (lambda \<upharpoonleft> E\<^bsub>ES1\<^esub>) = (t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>);
      (lambda \<upharpoonleft> E\<^bsub>ES2\<^esub>) = (t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>);
      (t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub>) = [];
      (t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub>) = [] \<rbrakk>
      \<Longrightarrow> (\<exists> t. ((\<tau> @ t) \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub> \<and> (t \<upharpoonleft> V\<^bsub>\<V>\<^esub>) = lambda \<and> (t \<upharpoonleft> C\<^bsub>\<V>\<^esub>) = []))"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof (induct lambda arbitrary: \<tau> t1 t2)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
case (Nil \<tau> t1 t2)
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set [] \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
[] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "(\<tau> @ []) \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
have "\<tau> \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
from Nil(5) validES1
[PROOF STATE]
proof (chain)
picking this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                    prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
from Nil(6) validES2
[PROOF STATE]
proof (chain)
picking this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                    prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
note Nil(1)
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by (simp add: composeES_def)
[PROOF STATE]
proof (state)
this:
\<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
\<tau> \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "([] \<upharpoonleft> V\<^bsub>\<V>\<^esub>) = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. [] \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "([] \<upharpoonleft> C\<^bsub>\<V>\<^esub>) = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. [] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (2 subgoals):
 1. \<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set [] \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; [] \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; [] \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
 2. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[] \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
\<tau> @ [] \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
[] \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
case (Cons \<V>' lambda' \<tau> t1 t2)
[PROOF STATE]
proof (state)
this:
\<lbrakk>set ?\<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set ?t1.0 \<subseteq> E\<^bsub>ES1\<^esub>; set ?t2.0 \<subseteq> E\<^bsub>ES2\<^esub>; ?\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ ?t1.0 \<in> Tr\<^bsub>ES1\<^esub>; ?\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ ?t2.0 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = ?t1.0 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = ?t2.0 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?t1.0 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; ?t2.0 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. ?\<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>a lambda \<tau> t1 t2. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (a # lambda) \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (a # lambda) \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = a # lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>set ?\<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set ?t1.0 \<subseteq> E\<^bsub>ES1\<^esub>; set ?t2.0 \<subseteq> E\<^bsub>ES2\<^esub>; ?\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ ?t1.0 \<in> Tr\<^bsub>ES1\<^esub>; ?\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ ?t2.0 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = ?t1.0 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = ?t2.0 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?t1.0 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; ?t2.0 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. ?\<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3)
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have v'_in_Vv: "\<V>' \<in> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
              \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
              \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
              \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
let ?S = "V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> ( V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> ) \<union> ( V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>  )"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = ?S"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> (V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub>) \<union> (V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>)
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> (V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub>) \<union> (V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>)

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> (V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub>) \<union> (V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>)

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>"
                  and "V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> &&& V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> &&& V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> &&& V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
note Vv1_inter_Vv2_subsetof_Nabla1_union_Nabla2
                  Vv_is_Vv1_union_Vv2 v'_in_Vv
[PROOF STATE]
proof (state)
this:
V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> (V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub>) \<union> (V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>)
V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<union> (V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub>) \<union> (V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub>)
V\<^bsub>\<V>1\<^esub> - V\<^bsub>\<V>2\<^esub> = V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
V\<^bsub>\<V>2\<^esub> - V\<^bsub>\<V>1\<^esub> = V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
assume v'_in_Vv1_inter_Vv2_inter_Nabla1: "\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence v'_in_Vv1: "\<V>' \<in> V\<^bsub>\<V>1\<^esub>" and v'_in_Vv2: "\<V>' \<in> V\<^bsub>\<V>2\<^esub>"
                and v'_in_Nabla2: "\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> &&& \<V>' \<in> V\<^bsub>\<V>2\<^esub> &&& \<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have v'_in_E1: "\<V>' \<in> E\<^bsub>ES1\<^esub>" and v'_in_E2: "\<V>' \<in> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub> &&& \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub> &&& \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>1\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub> &&& \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> E\<^bsub>ES1\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3-4) Cons(8) v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t1 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain r1 s1
                where t1_is_r1_v'_s1: "t1 = r1 @ [\<V>'] @ s1"
                and r1_Vv_empty: "r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t1 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>r1 s1. \<lbrakk>t1 = r1 @ [\<V>'] @ s1; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Vv_is_Vv1_union_Vv2 projection_on_subset[of "V\<^bsub>\<V>1\<^esub>" "V\<^bsub>\<V>\<^esub>" "r1"]
[PROOF STATE]
proof (chain)
picking this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>1\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1_Vv1_empty: "r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>1\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1_is_r1_v'_s1 Cons(10)
[PROOF STATE]
proof (chain)
picking this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have r1_Cv1_empty: "r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1_is_r1_v'_s1 Cons(10)
[PROOF STATE]
proof (chain)
picking this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have s1_Cv1_empty: "s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(4) t1_is_r1_v'_s1
[PROOF STATE]
proof (chain)
picking this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1
[PROOF STEP]
have r1_in_E1star: "set r1 \<subseteq> E\<^bsub>ES1\<^esub>" and s1_in_E1star: "set s1 \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1

goal (1 subgoal):
 1. set r1 \<subseteq> E\<^bsub>ES1\<^esub> &&& set s1 \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set s1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1_in_Nv1star: "set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note r1_in_E1star
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1_Vv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note validV1
[PROOF STATE]
proof (state)
this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1E2_in_Nv1_inter_C2_star: "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with r1_in_Nv1star
[PROOF STATE]
proof (chain)
picking this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from validV2  disjoint_Nv1_Vv2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
have "E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv2_inter_Nv1_subsetof_Upsilon2
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have r1E2_in_Nv1_inter_C2_Upsilon2_star: "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note outerCons_prems = Cons.prems
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>) \<Longrightarrow>
                \<exists> t2'. ( set t2' \<subseteq> E\<^bsub>ES2\<^esub>
                \<and> ((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>
                \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
                \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
proof (induct "r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>" arbitrary: r1 rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r1. \<lbrakk>[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (2 subgoals):
 1. \<And>r1. \<lbrakk>[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (metis append_self_conv outerCons_prems(10)
                    outerCons_prems(4) outerCons_prems(6) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r1.0 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (?r1.0 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ ?r1.0) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have xs_is_xsE2: "xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set xs \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (metis Int_commute snoc.prems)
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with xs_is_xsE2
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain t2''
                  where t2''_in_E2star: "set t2'' \<subseteq> E\<^bsub>ES2\<^esub>"
                  and \<tau>_xs_E2_t2''_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2'' \<in> Tr\<^bsub>ES2\<^esub>"
                  and t2''Vv2_is_t2Vv2: "t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                  and t2''Cv2_empty: "t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>t2''. \<lbrakk>set t2'' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>; t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2'' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have x_in_Cv2_inter_Nv1: "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
hence x_in_Cv2: "x \<in> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note \<tau>_xs_E2_t2''_in_Tr2 t2''Cv2_empty
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
from \<tau>_xs_E2_t2''_in_Tr2 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have \<tau>_xsE2_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                        prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
with x_in_Cv2_inter_Nv1 ES2_total_Cv2_inter_Nv1
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have \<tau>_xsE2_x_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
have "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> (\<rho>2 \<V>2) = ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> (\<rho>2 \<V>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
by (simp add: Adm_def, auto)
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note BSIA2
[PROOF STATE]
proof (state)
this:
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
obtain t2'
                  where res1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
                  and res2: "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                  and res3: "t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>t2'. \<lbrakk>(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (simp only: BSIA_def, blast)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set t2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from res1 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have "set (((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
from res1 xs_is_xsE2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "((\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ (xs @ [x])) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
thus  ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: snoc(2) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from t2''Vv2_is_t2Vv2 res2
[PROOF STATE]
proof (chain)
picking this:
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note res3
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r1E2_in_Nv1_inter_C2_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain t2'
                where t2'_in_E2star: "set t2' \<subseteq> E\<^bsub>ES2\<^esub>"
                and \<tau>r1E2_t2'_in_Tr2: "((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
                and t2'_Vv2_is_t2_Vv2: "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                and t2'_Cv2_empty: "t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>t2'. \<lbrakk>set t2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from projection_intersection_neutral[OF Cons(5), of "V\<^bsub>\<V>\<^esub>"]
[PROOF STATE]
proof (chain)
picking this:
t2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
t2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
t2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp only: Int_commute)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
with Cons(9) t2'_Vv2_is_t2_Vv2 v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t2' = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain r2' s2'
                where t2'_is_r2'_v'_s2': "t2' = r2' @ [\<V>'] @ s2'"
                and r2'_Vv2_empty: "r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t2' = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>r2' s2'. \<lbrakk>t2' = r2' @ [\<V>'] @ s2'; r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t2' = r2' @ [\<V>'] @ s2'
r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2'_is_r2'_v'_s2' t2'_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
t2' = r2' @ [\<V>'] @ s2'
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have r2'_Cv2_empty: "r2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2' = r2' @ [\<V>'] @ s2'
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. r2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2'_is_r2'_v'_s2' t2'_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
t2' = r2' @ [\<V>'] @ s2'
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have s2'_Cv2_empty: "s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2' = r2' @ [\<V>'] @ s2'
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2'_in_E2star t2'_is_r2'_v'_s2'
[PROOF STATE]
proof (chain)
picking this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'
[PROOF STEP]
have r2'_in_E2star: "set r2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'

goal (1 subgoal):
 1. set r2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2'_in_Nv2star: "set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note r2'_in_E2star
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2'_Vv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2'_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note validV2
[PROOF STATE]
proof (state)
this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
set r2' \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2' \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2'E1_in_Nv2_inter_C1_star: "set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2' \<inter> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2' \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2' \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with r2'_in_Nv2star
[PROOF STATE]
proof (chain)
picking this:
set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2' \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r2' \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2' \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from validV1  disjoint_Nv2_Vv1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
have "E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv1_inter_Nv2_subsetof_Upsilon1
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have r2'E1_in_Nv2_inter_Cv1_Upsilon1_star:
                "set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<Longrightarrow>
                \<exists> s1' q1'. (
                set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
                \<and> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
                \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
                \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
                \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [])"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
proof (induct "r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>" arbitrary: r2' rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note s1_in_E1star
[PROOF STATE]
proof (state)
this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from outerCons_prems(5) t1_is_r1_v'_s1
[PROOF STATE]
proof (chain)
picking this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from Nil
[PROOF STATE]
proof (chain)
picking this:
[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "[] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. [] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note s1_Cv1_empty
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (2 subgoals):
 1. \<And>r2'. \<lbrakk>[] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>
set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>
[] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>
set [] \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ [] @ [\<V>'] @ s1 \<in> Tr\<^bsub>ES1\<^esub>
[] \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (?r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = ?r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have xs_is_xsE1: "xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
with xs_is_xsE1
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain s1'' q1''
                  where s1''_in_E1star: "set s1'' \<subseteq> E\<^bsub>ES1\<^esub>"
                  and q1''_in_C1_inter_Upsilon1_inter_Delta1: "set q1'' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>"
                  and \<tau>E1_r1_q1''_v'_s1''_in_Tr1: "(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>"
                  and q1''C1_Upsilon1_is_xsE1: "q1'' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>"
                  and s1''V1_is_s1V1: "s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                  and s1''C1_empty: "s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>s1'' q1''. \<lbrakk>set s1'' \<subseteq> E\<^bsub>ES1\<^esub>; set q1'' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>; q1'' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s1'' \<subseteq> E\<^bsub>ES1\<^esub>
set q1'' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
q1'' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have x_in_Cv1_inter_Upsilon1: "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>"
                  and x_in_Cv1_inter_Nv2: "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> &&& x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
 2. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (2 subgoals):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
 2. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
thus "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>"
                      and  "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> &&& x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
with validV1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have x_in_E1: "x \<in> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
x \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note x_in_Cv1_inter_Upsilon1
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from v'_in_Vv1_inter_Vv2_inter_Nabla1
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note \<tau>E1_r1_q1''_v'_s1''_in_Tr1 s1''C1_empty
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
from \<tau>E1_r1_q1''_v'_s1''_in_Tr1 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                        prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
with x_in_Cv1_inter_Nv2 ES1_total_Cv1_inter_Nv2
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> (\<rho>1 \<V>1) = (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> (\<rho>1 \<V>1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
[PROOF STEP]
by (simp only: Adm_def, blast)
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note FCIA1
[PROOF STATE]
proof (state)
this:
FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
obtain s1' \<gamma>'
                  where res1: "(set \<gamma>') \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)"
                  and res2: "((\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1') \<in> Tr\<^bsub>ES1\<^esub>"
                  and res3: "(s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>) = (s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>)"
                  and res4: "s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<And>\<gamma>' s1'. \<lbrakk>set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>; s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding FCIA_def
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [\<V>'] @ s1'' \<in> Tr\<^bsub>ES1\<^esub>
s1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') x
\<forall>\<alpha> \<beta>. \<forall>c\<in>C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>. \<forall>v\<in>V\<^bsub>\<V>1\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub>. \<beta> @ [v] @ \<alpha> \<in> Tr\<^bsub>ES1\<^esub> \<and> \<alpha> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> \<beta> c \<longrightarrow> (\<exists>\<alpha>' \<delta>'. set \<delta>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<beta> @ [c] @ \<delta>' @ [v] @ \<alpha>' \<in> Tr\<^bsub>ES1\<^esub> \<and> \<alpha>' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<alpha> \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> \<alpha>' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [])

goal (1 subgoal):
 1. (\<And>\<gamma>' s1'. \<lbrakk>set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>; s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
let ?q1' = "q1'' @ [x] @ \<gamma>'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from res2 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have "set s1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. set s1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from res1 x_in_Cv1_inter_Upsilon1 q1''_in_C1_inter_Upsilon1_inter_Delta1
[PROOF STATE]
proof (chain)
picking this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set q1'' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "set ?q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set q1'' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. set (q1'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (q1'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (q1'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from res2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ ?q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1'') @ [x] @ \<gamma>' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ (q1'' @ [x] @ \<gamma>') @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ (q1'' @ [x] @ \<gamma>') @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ (q1'' @ [x] @ \<gamma>') @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "?q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from validV1 res1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
from res1
[PROOF STATE]
proof (chain)
picking this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
hence "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
hence "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by (simp only: projection_def, auto)
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
from validV1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> = {}
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                            VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> = {}

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>1 E\<^bsub>ES1\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> = {}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> = {}

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "?q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (q1'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = []

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (q1'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (q1'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
with q1''C1_Upsilon1_is_xsE1 x_in_Cv1_inter_Upsilon1
[PROOF STATE]
proof (chain)
picking this:
q1'' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (q1'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
have "?q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x]"
[PROOF STATE]
proof (prove)
using this:
q1'' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = (q1'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x]
[PROOF STEP]
by (simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x]

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
with xs_is_xsE1 snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x]
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x]

goal (1 subgoal):
 1. (q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from res3 s1''V1_is_s1V1
[PROOF STATE]
proof (chain)
picking this:
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note res4
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2'. \<lbrakk>\<And>r2'. \<lbrakk>xs = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set (q1'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ (q1'' @ [x] @ \<gamma>') @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set (q1'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ (q1'' @ [x] @ \<gamma>') @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(q1'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r2'E1_in_Nv2_inter_Cv1_Upsilon1_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain s1' q1'
              where s1'_in_E1star: "set s1' \<subseteq> E\<^bsub>ES1\<^esub>"
              and q1'_in_Cv1_inter_Upsilon1_union_Nv1_inter_Delta1:
              "set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>"
              and \<tau>E1_r1_q1'_v'_s1'_in_Tr1: "(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>"
              and q1'Cv1_inter_Upsilon1_is_r2'E1: "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
              and s1'Vv1_is_s1_Vv1: "s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
              and s1'Cv1_empty: "s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>s1' q1'. set s1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub> \<and> q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<and> s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>s1' q1'. \<lbrakk>set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>; q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
s1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'_in_Cv1_inter_Upsilon1_union_Nv1_inter_Delta1 validV1
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
have q1'_in_E1star: "set q1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set q1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def  VC_disjoint_def
                VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2'Cv_empty: "r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis  projection_on_subset2
                r2'_Cv2_empty r2'_in_E2star)
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
(* application of merge_property' *)
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from validES1 \<tau>E1_r1_q1'_v'_s1'_in_Tr1
[PROOF STATE]
proof (chain)
picking this:
ES_valid ES1
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have q1'_in_E1star: "set q1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
ES_valid ES1
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set q1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note r2'_in_E2star
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have q1'E2_is_r2'E1: "q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from q1'_in_Cv1_inter_Upsilon1_union_Nv1_inter_Delta1
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) = q1'"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) = q1'
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) = q1'

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "(q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)) \<upharpoonleft> E\<^bsub>ES2\<^esub> = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) = q1'

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: Int_Un_distrib2 disjoint_Nv1_inter_Delta1_inter_E2, auto)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from q1'Cv1_inter_Upsilon1_is_r2'E1
[PROOF STATE]
proof (chain)
picking this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "(q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)) \<upharpoonleft> E\<^bsub>ES2\<^esub> = (r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = (r2' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def conj_commute)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
with r2'_in_E2star
[PROOF STATE]
proof (chain)
picking this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'_in_Cv1_inter_Upsilon1_union_Nv1_inter_Delta1
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'_in_E1star
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
by (simp add: Int_commute projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (V\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> V\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> ((C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> V\<^bsub>\<V>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (V\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> V\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
by (simp add: Int_Un_distrib2, metis Int_assoc Int_commute Int_left_commute Un_commute)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (V\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> V\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with validV1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (V\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> V\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (V\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> V\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def  VC_disjoint_def
                    VN_disjoint_def NC_disjoint_def, auto, simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis Int_commute  projection_intersection_neutral
                r2'_Vv2_empty r2'_in_E2star)
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have q1'Cv_empty: "q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'_in_E1star
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have foo: "q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
by (metis Int_commute list_subset_iff_projection_neutral projection_intersection_neutral)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from propSepViews
[PROOF STATE]
proof (chain)
picking this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>\<subseteq>C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_subset_elim[OF \<open>C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>\<subseteq>C\<^bsub>\<V>1\<^esub>\<close>, of q1']
[PROOF STATE]
proof (chain)
picking this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
have "q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
by (simp add: projection_commute)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with foo
[PROOF STATE]
proof (chain)
picking this:
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q1' = q1' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'_in_Cv1_inter_Upsilon1_union_Nv1_inter_Delta1
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "(C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
                    = (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by fast
[PROOF STATE]
proof (state)
this:
(C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
                     = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_sequence)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from validV1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
                  = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def Int_commute)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q1'Cv1_inter_Upsilon1_is_r2'E1
[PROOF STATE]
proof (chain)
picking this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with projection_on_intersection[OF r2'Cv_empty]
[PROOF STATE]
proof (chain)
picking this:
r2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> ?Y) = []
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
r2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> ?Y) = []
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: Int_commute projection_def)
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<union> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q1' \<upharpoonleft> (C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note r2'Cv_empty merge_property'[of q1' r2']
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set q1' \<subseteq> E\<^bsub>ES1\<^esub>; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set q1' \<subseteq> E\<^bsub>ES1\<^esub>; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
[PROOF STEP]
obtain q'
              where q'E1_is_q1': "q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'"
              and q'E2_is_r2': "q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'"
              and q'V_empty: "q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
              and q'C_empty: "q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
              and q'_in_E1_union_E2_star: "set q' \<subseteq> (E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set q1' \<subseteq> E\<^bsub>ES1\<^esub>; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>q'. \<lbrakk>q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'; q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'; q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding Let_def
[PROOF STATE]
proof (prove)
using this:
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set q1' \<subseteq> E\<^bsub>ES1\<^esub>; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; q1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; q1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; r2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>q'. \<lbrakk>q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'; q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'; q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?tau = "\<tau> @ r1 @ q' @ [\<V>']"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(2) r1_in_E1star q'_in_E1_union_E2_star v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set ?tau \<subseteq> (E\<^bsub>(ES1 \<parallel> ES2)\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by (simp add: composeES_def, auto)
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3)
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s1'_in_E1star
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2'_in_E2star t2'_is_r2'_v'_s2'
[PROOF STATE]
proof (chain)
picking this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'
[PROOF STEP]
have "set s2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'

goal (1 subgoal):
 1. set s2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q'E1_is_q1' r1_in_E1star v'_in_E1 q1'_in_E1star \<tau>E1_r1_q1'_v'_s1'_in_Tr1
[PROOF STATE]
proof (chain)
picking this:
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = q1'
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
set q1' \<subseteq> E\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ r1 @ q1' @ [\<V>'] @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral
                projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from \<tau>r1E2_t2'_in_Tr2 t2'_is_r2'_v'_s2' v'_in_E2 q'E2_is_r2'
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'
\<V>' \<in> E\<^bsub>ES2\<^esub>
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' = r2' @ [\<V>'] @ s2'
\<V>' \<in> E\<^bsub>ES2\<^esub>
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = r2'

goal (1 subgoal):
 1. (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from Cons(3-4) Cons(8) v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from t1_is_r1_v'_s1 r1_Vv_empty v'_in_Vv1 Vv_is_Vv1_union_Vv2
[PROOF STATE]
proof (chain)
picking this:
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp only: t1_is_r1_v'_s1 projection_concatenation_commute
                    projection_def, auto)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (metis Int_commute  projection_intersection_neutral
                    s1'Vv1_is_s1_Vv1 s1'_in_E1star s1_in_E1star)
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from Cons(3,5,9)  v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from t2'_is_r2'_v'_s2' r2'_Vv2_empty r2'_in_E2star v'_in_Vv2 propSepViews
[PROOF STATE]
proof (chain)
picking this:
t2' = r2' @ [\<V>'] @ s2'
r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
t2' = r2' @ [\<V>'] @ s2'
r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
set r2' \<subseteq> E\<^bsub>ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>t2' = r2' @ [\<V>'] @ s2'; r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; \<V>' \<in> V\<^bsub>\<V>2\<^esub>; properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2\<rbrakk> \<Longrightarrow> t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> =[]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis  projection_on_subset2 r2'_Vv2_empty
                        r2'_in_E2star subset_iff_psubset_eq)
[PROOF STATE]
proof (state)
this:
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>t2' = r2' @ [\<V>'] @ s2'; r2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []; set r2' \<subseteq> E\<^bsub>ES2\<^esub>; \<V>' \<in> V\<^bsub>\<V>2\<^esub>; properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2\<rbrakk> \<Longrightarrow> t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
with t2'_is_r2'_v'_s2' v'_in_Vv2 Vv_is_Vv1_union_Vv2
[PROOF STATE]
proof (chain)
picking this:
t2' = r2' @ [\<V>'] @ s2'
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t2' = r2' @ [\<V>'] @ s2'
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
r2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp only: t2'_is_r2'_v'_s2'
                        projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (metis Int_commute  outerCons_prems(4)
                    projection_intersection_neutral t2'_Vv2_is_t2_Vv2 t2'_in_E2star)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s1'Cv1_empty s2'_Cv2_empty Cons.hyps[of ?tau s1' s2']
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain t'
              where \<tau>_r1_q'_v'_t'_in_Tr: "?tau @ t' \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
              and t'Vv_is_lambda': "t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'"
              and t'Cv_empty: "t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r1 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>t'. \<lbrakk>(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>; t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?t = "r1 @ q' @ [\<V>'] @ t'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note \<tau>_r1_q'_v'_t'_in_Tr
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r1_Vv_empty q'V_empty t'Vv_is_lambda' v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
[PROOF STEP]
by(simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from VIsViewOnE r1_Cv1_empty t'Cv_empty q'C_empty v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from VIsViewOnE v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. [\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def VC_disjoint_def
                    VN_disjoint_def NC_disjoint_def projection_def, auto)
[PROOF STATE]
proof (state)
this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r1_in_E1star r1_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews projection_on_subset2
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<lbrakk>set ?l \<subseteq> ?L; ?l \<upharpoonleft> ?X' = []; ?X \<inter> ?L \<subseteq> ?X'\<rbrakk> \<Longrightarrow> ?l \<upharpoonleft> ?X = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
\<lbrakk>set ?l \<subseteq> ?L; ?l \<upharpoonleft> ?X' = []; ?X \<inter> ?L \<subseteq> ?X'\<rbrakk> \<Longrightarrow> ?l \<upharpoonleft> ?X = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note t'Cv_empty q'C_empty
[PROOF STATE]
proof (state)
this:
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r1 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r1 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
assume v'_in_Vv1_inter_Vv2_inter_Nabla2: "\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence v'_in_Vv1: "\<V>' \<in> V\<^bsub>\<V>1\<^esub>" and v'_in_Vv2: "\<V>' \<in> V\<^bsub>\<V>2\<^esub>"
                and v'_in_Nabla2: "\<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub> &&& \<V>' \<in> V\<^bsub>\<V>2\<^esub> &&& \<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv  propSepViews
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have v'_in_E1: "\<V>' \<in> E\<^bsub>ES1\<^esub>" and v'_in_E2: "\<V>' \<in> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub> &&& \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
\<V>' \<in> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub> &&& \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> E\<^bsub>ES1\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3,5,9) v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t2 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain r2 s2
                where t2_is_r2_v'_s2: "t2 = r2 @ [\<V>'] @ s2"
                and r2_Vv_empty: "r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t2 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>r2 s2. \<lbrakk>t2 = r2 @ [\<V>'] @ s2; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Vv_is_Vv1_union_Vv2 projection_on_subset[of "V\<^bsub>\<V>2\<^esub>" "V\<^bsub>\<V>\<^esub>" "r2"]
[PROOF STATE]
proof (chain)
picking this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>2\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2_Vv2_empty: "r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>2\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2_is_r2_v'_s2 Cons(11)
[PROOF STATE]
proof (chain)
picking this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have r2_Cv2_empty: "r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2_is_r2_v'_s2 Cons(11)
[PROOF STATE]
proof (chain)
picking this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have s2_Cv2_empty: "s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(5) t2_is_r2_v'_s2
[PROOF STATE]
proof (chain)
picking this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2
[PROOF STEP]
have r2_in_E2star: "set r2 \<subseteq> E\<^bsub>ES2\<^esub>"
                and s2_in_E2star: "set s2 \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2

goal (1 subgoal):
 1. set r2 \<subseteq> E\<^bsub>ES2\<^esub> &&& set s2 \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set s2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2_in_Nv2star: "set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note r2_in_E2star
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2_Vv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note validV2
[PROOF STATE]
proof (state)
this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2E1_in_Nv2_inter_C1_star: "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with r2_in_Nv2star
[PROOF STATE]
proof (chain)
picking this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from validV1  disjoint_Nv2_Vv1 propSepViews
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv1_inter_Nv2_subsetof_Upsilon1
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have r2E1_in_Nv2_inter_C1_Upsilon1_star: "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note outerCons_prems = Cons.prems
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>) \<Longrightarrow>
                \<exists> t1'. ( set t1' \<subseteq> E\<^bsub>ES1\<^esub>
                \<and> ((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>
                \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
                \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
proof (induct "r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>" arbitrary: r2 rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r2. \<lbrakk>[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (2 subgoals):
 1. \<And>r2. \<lbrakk>[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (metis append_self_conv outerCons_prems(9) outerCons_prems(3)
                    outerCons_prems(5) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r2.0 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (?r2.0 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ ?r2.0) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have xs_is_xsE1: "xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set xs \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (metis Int_commute snoc.prems)
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with xs_is_xsE1
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain t1''
                  where t1''_in_E1star: "set t1'' \<subseteq> E\<^bsub>ES1\<^esub>"
                  and \<tau>_xs_E1_t1''_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1'' \<in> Tr\<^bsub>ES1\<^esub>"
                  and t1''Vv1_is_t1Vv1: "t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                  and t1''Cv1_empty: "t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>t1''. \<lbrakk>set t1'' \<subseteq> E\<^bsub>ES1\<^esub>; (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>; t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1'' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have x_in_Cv1_inter_Nv2: "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
hence x_in_Cv1: "x \<in> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note \<tau>_xs_E1_t1''_in_Tr1 t1''Cv1_empty
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
from \<tau>_xs_E1_t1''_in_Tr1 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have \<tau>_xsE1_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                        prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
with x_in_Cv1_inter_Nv2 ES1_total_Cv1_inter_Nv2
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have \<tau>_xsE1_x_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
have "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> (\<rho>1 \<V>1) = ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> (\<rho>1 \<V>1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
by (simp add: Adm_def, auto)
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note BSIA1
[PROOF STATE]
proof (state)
this:
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
obtain t1'
                  where res1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
                  and res2: "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                  and res3: "t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<And>t1'. \<lbrakk>(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (simp only: BSIA_def, blast)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set t1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from res1 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have "set (((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
from res1 xs_is_xsE1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "((\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ (xs @ [x])) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
thus  ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: snoc(2) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from t1''Vv1_is_t1Vv1 res2
[PROOF STATE]
proof (chain)
picking this:
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note res3
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r2E1_in_Nv2_inter_C1_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain t1'
                where t1'_in_E1star: "set t1' \<subseteq> E\<^bsub>ES1\<^esub>"
                and \<tau>r2E1_t1'_in_Tr1: "((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
                and t1'_Vv1_is_t1_Vv1: "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                and t1'_Cv1_empty: "t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>t1'. \<lbrakk>set t1' \<subseteq> E\<^bsub>ES1\<^esub>; (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from projection_intersection_neutral[OF Cons(4), of "V\<^bsub>\<V>\<^esub>"] propSepViews
[PROOF STATE]
proof (chain)
picking this:
t1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
t1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> V\<^bsub>\<V>\<^esub>) = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp only: Int_commute)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
with Cons(8) t1'_Vv1_is_t1_Vv1 v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t1' = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain r1' s1'
                where t1'_is_r1'_v'_s1': "t1' = r1' @ [\<V>'] @ s1'"
                and r1'_Vv1_empty: "r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t1' = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>r1' s1'. \<lbrakk>t1' = r1' @ [\<V>'] @ s1'; r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t1' = r1' @ [\<V>'] @ s1'
r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1'_is_r1'_v'_s1' t1'_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
t1' = r1' @ [\<V>'] @ s1'
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have r1'_Cv1_empty: "r1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1' = r1' @ [\<V>'] @ s1'
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. r1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1'_is_r1'_v'_s1' t1'_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
t1' = r1' @ [\<V>'] @ s1'
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have s1'_Cv1_empty: "s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1' = r1' @ [\<V>'] @ s1'
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1'_in_E1star t1'_is_r1'_v'_s1'
[PROOF STATE]
proof (chain)
picking this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'
[PROOF STEP]
have r1'_in_E1star: "set r1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'

goal (1 subgoal):
 1. set r1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1'_in_Nv1star: "set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note r1'_in_E1star
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1'_Vv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1'_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note validV1
[PROOF STATE]
proof (state)
this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
set r1' \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1' \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1'E2_in_Nv1_inter_C2_star: "set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1' \<inter> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1' \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1' \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with r1'_in_Nv1star
[PROOF STATE]
proof (chain)
picking this:
set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1' \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r1' \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1' \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from validV2 propSepViews disjoint_Nv1_Vv2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
have "E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv2_inter_Nv1_subsetof_Upsilon2
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have r1'E2_in_Nv1_inter_Cv2_Upsilon2_star:
                "set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<Longrightarrow>
                \<exists> s2' q2'. (
                set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
                \<and> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
                \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
                \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
                \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [])"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
proof (induct "r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>" arbitrary: r1' rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note s2_in_E2star
[PROOF STATE]
proof (state)
this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from outerCons_prems(6) t2_is_r2_v'_s2
[PROOF STATE]
proof (chain)
picking this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from Nil
[PROOF STATE]
proof (chain)
picking this:
[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "[] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. [] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
[] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note s2_Cv2_empty
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (2 subgoals):
 1. \<And>r1'. \<lbrakk>[] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>
set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>
[] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>
set [] \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ [] @ [\<V>'] @ s2 \<in> Tr\<^bsub>ES2\<^esub>
[] \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (?r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = ?r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have xs_is_xsE2: "xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
with xs_is_xsE2
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain s2'' q2''
                  where s2''_in_E2star: "set s2'' \<subseteq> E\<^bsub>ES2\<^esub>"
                  and q2''_in_C2_inter_Upsilon2_inter_Delta2: "set q2'' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>"
                  and \<tau>E2_r2_q2''_v'_s2''_in_Tr2: "(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>"
                  and q2''C2_Upsilon2_is_xsE2: "q2'' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>"
                  and s2''V2_is_s2V2: "s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                  and s2''C2_empty: "s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>s2'' q2''. \<lbrakk>set s2'' \<subseteq> E\<^bsub>ES2\<^esub>; set q2'' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>; q2'' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s2'' \<subseteq> E\<^bsub>ES2\<^esub>
set q2'' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
q2'' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have x_in_Cv2_inter_Upsilon2: "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>"
                  and x_in_Cv2_inter_Nv1: "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> &&& x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
 2. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (2 subgoals):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
 2. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
thus "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>"
                      and  "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> &&& x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
with validV2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have x_in_E2: "x \<in> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add:isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
x \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note x_in_Cv2_inter_Upsilon2
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from v'_in_Vv1_inter_Vv2_inter_Nabla2
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note \<tau>E2_r2_q2''_v'_s2''_in_Tr2 s2''C2_empty
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
from \<tau>E2_r2_q2''_v'_s2''_in_Tr2 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                        prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
with x_in_Cv2_inter_Nv1 ES2_total_Cv2_inter_Nv1
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
have "(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> (\<rho>2 \<V>2) = (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> (\<rho>2 \<V>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
[PROOF STEP]
by (simp only: Adm_def, blast)
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note FCIA2
[PROOF STATE]
proof (state)
this:
FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
obtain s2' \<gamma>'
                  where res1: "(set \<gamma>') \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)"
                  and res2: "((\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2') \<in> Tr\<^bsub>ES2\<^esub>"
                  and res3: "(s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>) = (s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>)"
                  and res4: "s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>\<gamma>' s2'. \<lbrakk>set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>; s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding FCIA_def
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
\<V>' \<in> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [\<V>'] @ s2'' \<in> Tr\<^bsub>ES2\<^esub>
s2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') x
\<forall>\<alpha> \<beta>. \<forall>c\<in>C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>. \<forall>v\<in>V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub>. \<beta> @ [v] @ \<alpha> \<in> Tr\<^bsub>ES2\<^esub> \<and> \<alpha> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<and> Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> \<beta> c \<longrightarrow> (\<exists>\<alpha>' \<delta>'. set \<delta>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<beta> @ [c] @ \<delta>' @ [v] @ \<alpha>' \<in> Tr\<^bsub>ES2\<^esub> \<and> \<alpha>' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = \<alpha> \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> \<alpha>' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [])

goal (1 subgoal):
 1. (\<And>\<gamma>' s2'. \<lbrakk>set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>; (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>; s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
let ?q2' = "q2'' @ [x] @ \<gamma>'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from res2 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have "set s2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. set s2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from res1 x_in_Cv2_inter_Upsilon2 q2''_in_C2_inter_Upsilon2_inter_Delta2
[PROOF STATE]
proof (chain)
picking this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set q2'' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "set ?q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set q2'' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. set (q2'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (q2'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (q2'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from res2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have "\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ ?q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2'') @ [x] @ \<gamma>' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ (q2'' @ [x] @ \<gamma>') @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ (q2'' @ [x] @ \<gamma>') @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ (q2'' @ [x] @ \<gamma>') @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "?q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from validV2 res1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
from res1
[PROOF STATE]
proof (chain)
picking this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
hence "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
hence "\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by (simp only: projection_def, auto)
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
from validV2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> = {}
[PROOF STEP]
by (simp add:isViewOn_def V_valid_def
                            VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> = {}

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V>2 E\<^bsub>ES2\<^esub>; set \<gamma>' \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> = {}
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = \<gamma>' \<upharpoonleft> (N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> = {}

goal (1 subgoal):
 1. \<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "?q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (q2'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
\<gamma>' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = []

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (q2'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (q2'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
with q2''C2_Upsilon2_is_xsE2 x_in_Cv2_inter_Upsilon2
[PROOF STATE]
proof (chain)
picking this:
q2'' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (q2'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
have "?q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x]"
[PROOF STATE]
proof (prove)
using this:
q2'' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = (q2'' @ [x]) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x]
[PROOF STEP]
by (simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x]

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
with xs_is_xsE2 snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x]
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = xs \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x]

goal (1 subgoal):
 1. (q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from res3 s2''V2_is_s2V2
[PROOF STATE]
proof (chain)
picking this:
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note res4
[PROOF STATE]
proof (state)
this:
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1'. \<lbrakk>\<And>r1'. \<lbrakk>xs = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
set (q2'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ (q2'' @ [x] @ \<gamma>') @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
set (q2'' @ [x] @ \<gamma>') \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ (q2'' @ [x] @ \<gamma>') @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
(q2'' @ [x] @ \<gamma>') \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r1'E2_in_Nv1_inter_Cv2_Upsilon2_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain s2' q2'
              where s2'_in_E2star: "set s2' \<subseteq> E\<^bsub>ES2\<^esub>"
              and q2'_in_Cv2_inter_Upsilon2_union_Nv2_inter_Delta2:
              "set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>"
              and \<tau>E2_r2_q2'_v'_s2'_in_Tr2: "(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>"
              and q2'Cv2_inter_Upsilon2_is_r1'E2: "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
              and s2'Vv2_is_s2_Vv2: "s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
              and s2'Cv2_empty: "s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>s2' q2'. set s2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub> \<and> q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<and> s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>s2' q2'. \<lbrakk>set s2' \<subseteq> E\<^bsub>ES2\<^esub>; set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>; q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>; s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
s2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'_in_Cv2_inter_Upsilon2_union_Nv2_inter_Delta2 validV2
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
have q2'_in_E2star: "set q2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set q2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def VC_disjoint_def
                VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1'Cv_empty: "r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis  projection_on_subset2
                r1'_Cv1_empty r1'_in_E1star)
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
(* application of merge_property' *)
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from validES2 \<tau>E2_r2_q2'_v'_s2'_in_Tr2
[PROOF STATE]
proof (chain)
picking this:
ES_valid ES2
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have q2'_in_E2star: "set q2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
ES_valid ES2
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set q2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note r1'_in_E1star
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have q2'E1_is_r1'E2: "q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from q2'_in_Cv2_inter_Upsilon2_union_Nv2_inter_Delta2
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) = q2'"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) = q2'
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) = q2'

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "(q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)) \<upharpoonleft> E\<^bsub>ES1\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) = q2'

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: Int_Un_distrib2 disjoint_Nv2_inter_Delta2_inter_E1, auto)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from q2'Cv2_inter_Upsilon2_is_r1'E2
[PROOF STATE]
proof (chain)
picking this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "(q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)) \<upharpoonleft> E\<^bsub>ES1\<^esub> = (r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = (r1' \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def conj_commute)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
with r1'_in_E1star
[PROOF STATE]
proof (chain)
picking this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'_in_Cv2_inter_Upsilon2_union_Nv2_inter_Delta2
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'_in_E2star
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
by (simp add: Int_commute projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with propSepViews
[PROOF STATE]
proof (chain)
picking this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
have "q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> V\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> V\<^bsub>\<V>2\<^esub>)
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> V\<^bsub>\<V>2\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> V\<^bsub>\<V>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (V\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> V\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> ((C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> V\<^bsub>\<V>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (V\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> V\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
by (simp add: Int_Un_distrib2, metis Int_assoc
                    Int_commute Int_left_commute Un_commute)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (V\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> V\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with validV2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (V\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> V\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (V\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> V\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto, simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis Int_commute  projection_intersection_neutral
                r1'_Vv1_empty r1'_in_E1star)
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have q2'Cv_empty: "q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'_in_E2star
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have foo: "q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
by (metis Int_commute list_subset_iff_projection_neutral
                    projection_intersection_neutral)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from propSepViews
[PROOF STATE]
proof (chain)
picking this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_subset_elim[OF \<open>C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>\<close>, of q2']
[PROOF STATE]
proof (chain)
picking this:
q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
have "q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
by (simp add: projection_commute)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with foo
[PROOF STATE]
proof (chain)
picking this:
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
q2' = q2' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'_in_Cv2_inter_Upsilon2_union_Nv2_inter_Delta2
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "(C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
                    = (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by fast
[PROOF STATE]
proof (state)
this:
(C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
                  = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<inter> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_sequence)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from validV2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
                  = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def Int_commute)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q2'Cv2_inter_Upsilon2_is_r1'E2
[PROOF STATE]
proof (chain)
picking this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with projection_on_intersection[OF r1'Cv_empty]
[PROOF STATE]
proof (chain)
picking this:
r1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> ?Y) = []
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
r1' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> ?Y) = []
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> C\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: Int_commute projection_def)
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>)
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<union> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub>
q2' \<upharpoonleft> (C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>) \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note r1'Cv_empty merge_property'[of r1' q2']
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set r1' \<subseteq> E\<^bsub>ES1\<^esub>; set q2' \<subseteq> E\<^bsub>ES2\<^esub>; r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set r1' \<subseteq> E\<^bsub>ES1\<^esub>; set q2' \<subseteq> E\<^bsub>ES2\<^esub>; r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
[PROOF STEP]
obtain q'
              where q'E2_is_q2': "q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'"
              and q'E1_is_r1': "q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'"
              and q'V_empty: "q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
              and q'C_empty: "q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
              and q'_in_E1_union_E2_star: "set q' \<subseteq> (E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set r1' \<subseteq> E\<^bsub>ES1\<^esub>; set q2' \<subseteq> E\<^bsub>ES2\<^esub>; r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>q'. \<lbrakk>q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'; q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'; q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
unfolding Let_def
[PROOF STATE]
proof (prove)
using this:
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
q2' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<upharpoonleft> E\<^bsub>ES2\<^esub>
q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<lbrakk>set r1' \<subseteq> E\<^bsub>ES1\<^esub>; set q2' \<subseteq> E\<^bsub>ES2\<^esub>; r1' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<upharpoonleft> E\<^bsub>ES1\<^esub>; r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; r1' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q2' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. t \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1' \<and> t \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2' \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [] \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [] \<and> set t \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>q'. \<lbrakk>q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'; q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'; q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?tau = "\<tau> @ r2 @ q' @ [\<V>']"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(2) r2_in_E2star q'_in_E1_union_E2_star v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set ?tau \<subseteq> (E\<^bsub>(ES1 \<parallel> ES2)\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set q' \<subseteq> E\<^bsub>ES1\<^esub> \<union> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by (simp add: composeES_def, auto)
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3)
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1'_in_E1star t1'_is_r1'_v'_s1'
[PROOF STATE]
proof (chain)
picking this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'
[PROOF STEP]
have "set s1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'

goal (1 subgoal):
 1. set s1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s2'_in_E2star
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from \<tau>r2E1_t1'_in_Tr1 t1'_is_r1'_v'_s1' v'_in_E1 q'E1_is_r1'
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'
\<V>' \<in> E\<^bsub>ES1\<^esub>
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' = r1' @ [\<V>'] @ s1'
\<V>' \<in> E\<^bsub>ES1\<^esub>
q' \<upharpoonleft> E\<^bsub>ES1\<^esub> = r1'

goal (1 subgoal):
 1. (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from q'E2_is_q2' r2_in_E2star v'_in_E2 q2'_in_E2star \<tau>E2_r2_q2'_v'_s2'_in_Tr2
[PROOF STATE]
proof (chain)
picking this:
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
q' \<upharpoonleft> E\<^bsub>ES2\<^esub> = q2'
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
set q2' \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ r2 @ q2' @ [\<V>'] @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: list_subset_iff_projection_neutral
                projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from Cons(2,4,8)  v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from t1'_is_r1'_v'_s1' r1'_Vv1_empty r1'_in_E1star
                  v'_in_Vv1 propSepViews
[PROOF STATE]
proof (chain)
picking this:
t1' = r1' @ [\<V>'] @ s1'
r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
t1' = r1' @ [\<V>'] @ s1'
r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
set r1' \<subseteq> E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>t1' = r1' @ [\<V>'] @ s1'; r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []; set r1' \<subseteq> E\<^bsub>ES1\<^esub>; \<V>' \<in> V\<^bsub>\<V>1\<^esub>; properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2\<rbrakk> \<Longrightarrow> t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> =[]"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (metis  projection_on_subset2 r1'_Vv1_empty
                        r1'_in_E1star subset_iff_psubset_eq)
[PROOF STATE]
proof (state)
this:
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>t1' = r1' @ [\<V>'] @ s1'; r1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []; set r1' \<subseteq> E\<^bsub>ES1\<^esub>; \<V>' \<in> V\<^bsub>\<V>1\<^esub>; properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2\<rbrakk> \<Longrightarrow> t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
with t1'_is_r1'_v'_s1' v'_in_Vv1 Vv_is_Vv1_union_Vv2
[PROOF STATE]
proof (chain)
picking this:
t1' = r1' @ [\<V>'] @ s1'
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t1' = r1' @ [\<V>'] @ s1'
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
r1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp only: t1'_is_r1'_v'_s1' projection_concatenation_commute
                        projection_def, auto)
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (metis Int_commute outerCons_prems(3)
                    projection_intersection_neutral t1'_Vv1_is_t1_Vv1 t1'_in_E1star)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from Cons(3,5,9) v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
from t2_is_r2_v'_s2 r2_Vv_empty v'_in_Vv2 Vv_is_Vv1_union_Vv2
[PROOF STATE]
proof (chain)
picking this:
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ (s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp only: t2_is_r2_v'_s2 projection_concatenation_commute
                    projection_def, auto)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (metis Int_commute  projection_intersection_neutral
                    s2'Vv2_is_s2_Vv2 s2'_in_E2star s2_in_E2star)
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = [\<V>'] @ s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s1'_Cv1_empty s2'Cv2_empty Cons.hyps[of ?tau s1' s2']
[PROOF STATE]
proof (state)
this:
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain t'
              where \<tau>_r2_q'_v'_t'_in_Tr: "?tau @ t' \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
              and t'Vv_is_lambda': "t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'"
              and t'Cv_empty: "t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1' \<subseteq> E\<^bsub>ES1\<^esub>
set s2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r2 @ q' @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ q' @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ q' @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>t'. \<lbrakk>(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>; t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?t = "r2 @ q' @ [\<V>'] @ t'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note \<tau>_r2_q'_v'_t'_in_Tr
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r2_Vv_empty q'V_empty t'Vv_is_lambda' v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
[PROOF STEP]
by(simp only: projection_concatenation_commute projection_def, auto)
[PROOF STATE]
proof (state)
this:
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from VIsViewOnE r2_Cv2_empty t'Cv_empty q'C_empty v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from VIsViewOnE v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. [\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def projection_def, auto)
[PROOF STATE]
proof (state)
this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r2_in_E2star r2_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
using propSepViews projection_on_subset2
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<lbrakk>set ?l \<subseteq> ?L; ?l \<upharpoonleft> ?X' = []; ?X \<inter> ?L \<subseteq> ?X'\<rbrakk> \<Longrightarrow> ?l \<upharpoonleft> ?X = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
\<lbrakk>set ?l \<subseteq> ?L; ?l \<upharpoonleft> ?X' = []; ?X \<inter> ?L \<subseteq> ?X'\<rbrakk> \<Longrightarrow> ?l \<upharpoonleft> ?X = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note t'Cv_empty q'C_empty
[PROOF STATE]
proof (state)
this:
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>; r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; \<V>' \<in> V\<^bsub>\<V>\<^esub>\<rbrakk> \<Longrightarrow> (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
[\<V>'] \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
q' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r2 @ q' @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r2 @ q' @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
assume v'_in_Vv1_minus_E2: "\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence v'_in_Vv1: "\<V>' \<in> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have v'_in_E1: "\<V>' \<in> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from v'_in_Vv1_minus_E2
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>
[PROOF STEP]
have v'_notin_E2: "\<V>' \<notin> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<V>' \<notin> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<notin> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with validV2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have v'_notin_Vv2: "\<V>' \<notin> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<V>' \<notin> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                  VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
\<V>' \<notin> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3-4) Cons(8) v'_in_E1
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t1 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain r1 s1
                where t1_is_r1_v'_s1: "t1 = r1 @ [\<V>'] @ s1"
                and r1_Vv_empty: "r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t1 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>r1 s1. \<lbrakk>t1 = r1 @ [\<V>'] @ s1; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Vv_is_Vv1_union_Vv2 projection_on_subset[of "V\<^bsub>\<V>1\<^esub>" "V\<^bsub>\<V>\<^esub>" "r1"]
[PROOF STATE]
proof (chain)
picking this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>1\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1_Vv1_empty: "r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>1\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1_is_r1_v'_s1 Cons(10)
[PROOF STATE]
proof (chain)
picking this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have r1_Cv1_empty: "r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t1_is_r1_v'_s1 Cons(10)
[PROOF STATE]
proof (chain)
picking this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have s1_Cv1_empty: "s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t1 = r1 @ [\<V>'] @ s1
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(4) t1_is_r1_v'_s1
[PROOF STATE]
proof (chain)
picking this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1
[PROOF STEP]
have r1_in_E1star: "set r1 \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1

goal (1 subgoal):
 1. set r1 \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1_in_Nv1star: "set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note r1_in_E1star
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1_Vv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from r1_Cv1_empty
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                      disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                      projection_on_union)
[PROOF STATE]
proof (state)
this:
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
note validV1
[PROOF STATE]
proof (state)
this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> E\<^bsub>ES1\<^esub>
set r1 \<inter> V\<^bsub>\<V>1\<^esub> = {}
set r1 \<inter> C\<^bsub>\<V>1\<^esub> = {}
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r1E2_in_Nv1_inter_C2_star: "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with r1_in_Nv1star
[PROOF STATE]
proof (chain)
picking this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) = set r1 \<inter> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from validV2  disjoint_Nv1_Vv2
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
have "E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
N\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> = {}
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                      VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
E\<^bsub>ES2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> = N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv2_inter_Nv1_subsetof_Upsilon2
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have r1E2_in_Nv1_inter_C2_Upsilon2_star: "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note outerCons_prems = Cons.prems
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>) \<Longrightarrow>
                \<exists> t2'. ( set t2' \<subseteq> E\<^bsub>ES2\<^esub>
                \<and> ((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>
                \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
                \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
proof (induct "r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>" arbitrary: r1 rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r1. \<lbrakk>[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (2 subgoals):
 1. \<And>r1. \<lbrakk>[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
 2. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
[] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (metis append_self_conv outerCons_prems(10) outerCons_prems(4)
                    outerCons_prems(6) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r1.0 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (?r1.0 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ ?r1.0) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have xs_is_xsE2: "xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> (E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set xs \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (metis Int_commute snoc.prems)
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
with xs_is_xsE2
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set xs \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain t2''
                  where t2''_in_E2star: "set t2'' \<subseteq> E\<^bsub>ES2\<^esub>"
                  and \<tau>_xs_E2_t2''_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2'' \<in> Tr\<^bsub>ES2\<^esub>"
                  and t2''Vv2_is_t2Vv2: "t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                  and t2''Cv2_empty: "t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>t2''. \<lbrakk>set t2'' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>; t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2'' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have x_in_Cv2_inter_Nv1: "x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
hence x_in_Cv2: "x \<in> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note \<tau>_xs_E2_t2''_in_Tr2 t2''Cv2_empty
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
from \<tau>_xs_E2_t2''_in_Tr2 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have \<tau>_xsE2_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                        prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
with x_in_Cv2_inter_Nv1 ES2_total_Cv2_inter_Nv1
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
have \<tau>_xsE2_x_in_Tr2: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>
EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
have "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> (\<rho>2 \<V>2) = ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<upharpoonleft> (\<rho>2 \<V>2)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> \<upharpoonleft> \<rho>2 \<V>2

goal (1 subgoal):
 1. Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
[PROOF STEP]
by (simp add: Adm_def, auto)
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note BSIA2
[PROOF STATE]
proof (state)
this:
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
obtain t2'
                  where res1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
                  and res2: "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                  and res3: "t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>2\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2'' \<in> Tr\<^bsub>ES2\<^esub>
t2'' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
Adm \<V>2 \<rho>2 Tr\<^bsub>ES2\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) x
BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<And>t2'. \<lbrakk>(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (simp only: BSIA_def, blast)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set t2' \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
from res1 validES2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2
[PROOF STEP]
have "set (((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
ES_valid ES2

goal (1 subgoal):
 1. set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2') \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set t2' \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
from res1 xs_is_xsE2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "((\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ (xs @ [x])) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ [x] @ t2' \<in> Tr\<^bsub>ES2\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
thus  ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ xs @ [x]) @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp only: snoc(2) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
from t2''Vv2_is_t2Vv2 res2
[PROOF STATE]
proof (chain)
picking this:
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2'' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
note res3
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r1. \<lbrakk>\<And>r1. \<lbrakk>xs = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []; xs @ [x] = r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>; set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r1 \<upharpoonleft> E\<^bsub>ES2\<^esub>) \<subseteq> N\<^bsub>\<V>1\<^esub> \<inter> C\<^bsub>\<V>2\<^esub> \<Longrightarrow> \<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r1E2_in_Nv1_inter_C2_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
obtain t2'
              where t2'_in_E2star: "set t2' \<subseteq> E\<^bsub>ES2\<^esub>"
                and \<tau>r1E2_t2'_in_Tr2: "((\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub>) @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
                and t2'_Vv2_is_t2_Vv2: "t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
                and t2'_Cv2_empty: "t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>t2'. set t2' \<subseteq> E\<^bsub>ES2\<^esub> \<and> (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub> \<and> t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> \<and> t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. (\<And>t2'. \<lbrakk>set t2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?tau = "\<tau> @ r1 @ [\<V>']"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from v'_in_E1 Cons(2) r1_in_Nv1star validV1
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> E\<^bsub>ES1\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set ?tau \<subseteq> E\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> E\<^bsub>ES1\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r1 \<subseteq> N\<^bsub>\<V>1\<^esub>
isViewOn \<V>1 E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by (simp only: isViewOn_def composeES_def V_valid_def
                VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3)
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(4) t1_is_r1_v'_s1
[PROOF STATE]
proof (chain)
picking this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1
[PROOF STEP]
have "set s1 \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
t1 = r1 @ [\<V>'] @ s1

goal (1 subgoal):
 1. set s1 \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s1 \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note t2'_in_E2star
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t2' \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (metis Cons_eq_appendI append_eq_appendI calculation(3) eq_Nil_appendI
                list_subset_iff_projection_neutral Cons.prems(3) Cons.prems(5)
                projection_concatenation_commute t1_is_r1_v'_s1)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from \<tau>r1E2_t2'_in_Tr2 v'_notin_E2
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r1) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(8) t1_is_r1_v'_s1 r1_Vv_empty v'_in_E1 v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 = r1 @ [\<V>'] @ s1
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(9) v'_notin_E2 t2'_Vv2_is_t2_Vv2
[PROOF STATE]
proof (chain)
picking this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: projection_def, metis Int_commute
                    projection_def projection_intersection_neutral t2'_in_E2star)
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: projection_def, metis Int_commute
                    projection_def projection_intersection_neutral Cons(5))
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
note Cons(9) v'_notin_E2 t2'_Vv2_is_t2_Vv2
[PROOF STATE]
proof (state)
this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; \<V>' \<notin> E\<^bsub>ES2\<^esub>; t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES2\<^esub>
t2' \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s1_Cv1_empty t2'_Cv2_empty
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note Cons.hyps(1)[of ?tau s1 t2']
[PROOF STATE]
proof (state)
this:
\<lbrakk>set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain t'
              where \<tau>r1v't'_in_Tr: "?tau @ t' \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
              and t'_Vv_is_lambda': "t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'"
              and t'_Cv_empty: "t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2' \<subseteq> E\<^bsub>ES2\<^esub>
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
\<lbrakk>set (\<tau> @ r1 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set s1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2' \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ s1 \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r1 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2' \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = s1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; s1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2' \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r1 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>t'. \<lbrakk>(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>; t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?t = "r1 @ [\<V>'] @ t'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note \<tau>r1v't'_in_Tr
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r1_Vv_empty t'_Vv_is_lambda' v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r1 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
(r1 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(r1 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "?t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from propSepViews
[PROOF STATE]
proof (chain)
picking this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_on_subset[OF \<open>E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub>\<close> r1_Cv1_empty]
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
have "r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []"
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
by (simp only: Int_commute)
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with projection_intersection_neutral[OF r1_in_E1star, of "C\<^bsub>\<V>\<^esub>"]
[PROOF STATE]
proof (chain)
picking this:
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub>
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub>
r1 \<upharpoonleft> (E\<^bsub>ES1\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv VIsViewOnE t'_Cv_empty
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r1 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def projection_def, auto)
[PROOF STATE]
proof (state)
this:
(r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r1 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r1 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r1 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r1 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
{
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
assume v'_in_Vv2_minus_E1: "\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
hence v'_in_Vv2: "\<V>' \<in> V\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv propSepViews
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<V>' \<in> V\<^bsub>\<V>2\<^esub>
[PROOF STEP]
have v'_in_E2: "\<V>' \<in> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
\<V>' \<in> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
\<V>' \<in> V\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from v'_in_Vv2_minus_E1
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
[PROOF STEP]
have v'_notin_E1: "\<V>' \<notin> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<V>' \<notin> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<V>' \<notin> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with validV1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have v'_notin_Vv1: "\<V>' \<notin> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<V>' \<notin> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                  VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
\<V>' \<notin> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3) Cons(5) Cons(9) v'_in_E2
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # (lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<in> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_split_first[OF this]
[PROOF STATE]
proof (chain)
picking this:
\<exists>\<alpha> \<beta>. t2 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain r2 s2
                where t2_is_r2_v'_s2: "t2 = r2 @ [\<V>'] @ s2"
                and r2_Vv_empty: "r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>\<alpha> \<beta>. t2 = \<alpha> @ [\<V>'] @ \<beta> \<and> \<alpha> \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>r2 s2. \<lbrakk>t2 = r2 @ [\<V>'] @ s2; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Vv_is_Vv1_union_Vv2 projection_on_subset[of "V\<^bsub>\<V>2\<^esub>" "V\<^bsub>\<V>\<^esub>" "r2"]
[PROOF STATE]
proof (chain)
picking this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>2\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2_Vv2_empty: "r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> = V\<^bsub>\<V>1\<^esub> \<union> V\<^bsub>\<V>2\<^esub>
\<lbrakk>V\<^bsub>\<V>2\<^esub> \<subseteq> V\<^bsub>\<V>\<^esub>; r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2_is_r2_v'_s2 Cons(11)
[PROOF STATE]
proof (chain)
picking this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have r2_Cv2_empty: "r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp add: projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from t2_is_r2_v'_s2 Cons(11)
[PROOF STATE]
proof (chain)
picking this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have s2_Cv2_empty: "s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
t2 = r2 @ [\<V>'] @ s2
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(5) t2_is_r2_v'_s2
[PROOF STATE]
proof (chain)
picking this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2
[PROOF STEP]
have r2_in_E2star: "set r2 \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2

goal (1 subgoal):
 1. set r2 \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2_in_Nv2star: "set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note r2_in_E2star
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2_Vv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> V\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                    disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                    projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from r2_Cv2_empty
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
[PROOF STEP]
have "set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
[PROOF STEP]
by (metis Compl_Diff_eq Diff_cancel Un_upper2
                    disjoint_eq_subset_Compl list_subset_iff_projection_neutral
                    projection_on_union)
[PROOF STATE]
proof (state)
this:
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
note validV2
[PROOF STATE]
proof (state)
this:
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> E\<^bsub>ES2\<^esub>
set r2 \<inter> V\<^bsub>\<V>2\<^esub> = {}
set r2 \<inter> C\<^bsub>\<V>2\<^esub> = {}
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have r2E1_in_Nv2_inter_C1_star: "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with r2_in_Nv2star
[PROOF STATE]
proof (chain)
picking this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) = set r2 \<inter> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
from validV1 propSepViews disjoint_Nv2_Vv1
[PROOF STATE]
proof (chain)
picking this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}
[PROOF STEP]
have "E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
isViewOn \<V>1 E\<^bsub>ES1\<^esub>
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}
N\<^bsub>\<V>2\<^esub> \<inter> V\<^bsub>\<V>1\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
E\<^bsub>ES1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with Cv1_inter_Nv2_subsetof_Upsilon1
[PROOF STATE]
proof (chain)
picking this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have r2E1_in_Nv2_inter_C1_Upsilon1_star: "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<inter> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note outerCons_prems = Cons.prems
[PROOF STATE]
proof (state)
this:
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
set t1 \<subseteq> E\<^bsub>ES1\<^esub>
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>
\<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>) \<Longrightarrow>
                \<exists> t1'. ( set t1' \<subseteq> E\<^bsub>ES1\<^esub>
                \<and> ((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>
                \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
                \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] )"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
proof (induct "r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>" arbitrary: r2 rule: rev_induct)
[PROOF STATE]
proof (state)
goal (2 subgoals):
 1. \<And>r2. \<lbrakk>[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case Nil
[PROOF STATE]
proof (state)
this:
[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (2 subgoals):
 1. \<And>r2. \<lbrakk>[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
 2. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
thus ?case
[PROOF STATE]
proof (prove)
using this:
[] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by (metis append_self_conv outerCons_prems(9) outerCons_prems(3)
                    outerCons_prems(5) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
next
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
case (snoc x xs)
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = ?r2.0 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (?r2.0 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ ?r2.0) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have xs_is_xsE1: "xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def, auto)
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set xs \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: list_subset_iff_projection_neutral)
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (metis Int_commute snoc.prems)
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with snoc(2)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
hence "set xs \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
with xs_is_xsE1
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set xs \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note snoc.hyps(1)[of xs]
[PROOF STATE]
proof (state)
this:
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain t1''
                  where t1''_in_E1star: "set t1'' \<subseteq> E\<^bsub>ES1\<^esub>"
                  and \<tau>_xs_E1_t1''_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1'' \<in> Tr\<^bsub>ES1\<^esub>"
                  and t1''Vv1_is_t1Vv1: "t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                  and t1''Cv1_empty: "t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
\<lbrakk>xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (xs \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>t1''. \<lbrakk>set t1'' \<subseteq> E\<^bsub>ES1\<^esub>; (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>; t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1'' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have x_in_Cv1_inter_Nv2: "x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
from snoc(2-3)
[PROOF STATE]
proof (chain)
picking this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "set (xs @ [x]) \<subseteq> (N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>)"
[PROOF STATE]
proof (prove)
using this:
xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set (xs @ [x]) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
hence x_in_Cv1: "x \<in> C\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. x \<in> C\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
x \<in> C\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note \<tau>_xs_E1_t1''_in_Tr1 t1''Cv1_empty
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have Adm: "(Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
from \<tau>_xs_E1_t1''_in_Tr1 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have \<tau>_xsE1_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_prefixclosed_def
                      prefixclosed_def prefix_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
with x_in_Cv1_inter_Nv2 ES1_total_Cv1_inter_Nv2
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
have \<tau>_xsE1_x_in_Tr1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>
EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>)
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: total_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
have "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> (\<rho>1 \<V>1) = ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<upharpoonleft> (\<rho>1 \<V>1)"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
..
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] \<in> Tr\<^bsub>ES1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1 = (\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> \<upharpoonleft> \<rho>1 \<V>1

goal (1 subgoal):
 1. Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
[PROOF STEP]
by (simp add: Adm_def, auto)
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note BSIA1
[PROOF STATE]
proof (state)
this:
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
x \<in> C\<^bsub>\<V>1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
obtain t1'
                  where res1: "((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
                  and res2: "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                  and res3: "t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
x \<in> C\<^bsub>\<V>1\<^esub>
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1'' \<in> Tr\<^bsub>ES1\<^esub>
t1'' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
Adm \<V>1 \<rho>1 Tr\<^bsub>ES1\<^esub> ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) x
BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<And>t1'. \<lbrakk>(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by (simp only: BSIA_def, blast)
[PROOF STATE]
proof (state)
this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "set t1' \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
from res1 validES1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1
[PROOF STEP]
have "set (((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
ES_valid ES1

goal (1 subgoal):
 1. set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: ES_valid_def traces_contain_events_def, auto)
[PROOF STATE]
proof (state)
this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
set ((\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1') \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. set t1' \<subseteq> E\<^bsub>ES1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
have "((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
from res1 xs_is_xsE1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "((\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ (xs @ [x])) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ xs) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ [x] @ t1' \<in> Tr\<^bsub>ES1\<^esub>
xs = xs \<upharpoonleft> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: projection_concatenation_commute, auto)
[PROOF STATE]
proof (state)
this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
thus  ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ xs @ [x]) @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp only: snoc(2) projection_concatenation_commute)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
from t1''Vv1_is_t1Vv1 res2
[PROOF STATE]
proof (chain)
picking this:
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1'' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
note res3
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<And>x xs r2. \<lbrakk>\<And>r2. \<lbrakk>xs = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; xs @ [x] = r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>; set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
show ?case
[PROOF STATE]
proof (prove)
using this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
set (r2 \<upharpoonleft> E\<^bsub>ES1\<^esub>) \<subseteq> N\<^bsub>\<V>2\<^esub> \<inter> C\<^bsub>\<V>1\<^esub> \<Longrightarrow> \<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from this[OF r2E1_in_Nv2_inter_C1_star]
[PROOF STATE]
proof (chain)
picking this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
[PROOF STEP]
obtain t1'
                where t1'_in_E1star: "set t1' \<subseteq> E\<^bsub>ES1\<^esub>"
                and \<tau>r2E1_t1'_in_Tr1: "((\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub>) @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
                and t1'_Vv1_is_t1_Vv1: "t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
                and t1'_Cv1_empty: "t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
\<exists>t1'. set t1' \<subseteq> E\<^bsub>ES1\<^esub> \<and> (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub> \<and> t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub> \<and> t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. (\<And>t1'. \<lbrakk>set t1' \<subseteq> E\<^bsub>ES1\<^esub>; (\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?tau = "\<tau> @ r2 @ [\<V>']"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from v'_in_E2 Cons(2) r2_in_Nv2star validV2
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> E\<^bsub>ES2\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
isViewOn \<V>2 E\<^bsub>ES2\<^esub>
[PROOF STEP]
have "set ?tau \<subseteq> E\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> E\<^bsub>ES2\<^esub>
set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set r2 \<subseteq> N\<^bsub>\<V>2\<^esub>
isViewOn \<V>2 E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
[PROOF STEP]
by (simp only: composeES_def isViewOn_def V_valid_def
                  VC_disjoint_def VN_disjoint_def NC_disjoint_def, auto)
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(3)
[PROOF STATE]
proof (chain)
picking this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(5) t2_is_r2_v'_s2
[PROOF STATE]
proof (chain)
picking this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2
[PROOF STEP]
have "set s2 \<subseteq> E\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
set t2 \<subseteq> E\<^bsub>ES2\<^esub>
t2 = r2 @ [\<V>'] @ s2

goal (1 subgoal):
 1. set s2 \<subseteq> E\<^bsub>ES2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set s2 \<subseteq> E\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note t1'_in_E1star
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
set t1' \<subseteq> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>
[PROOF STEP]
by (metis Cons_eq_appendI append_eq_appendI calculation(3) eq_Nil_appendI
                  list_subset_iff_projection_neutral Cons.prems(4) Cons.prems(6)
                  projection_concatenation_commute t2_is_r2_v'_s2)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from \<tau>r2E1_t1'_in_Tr1 v'_notin_E1
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>
[PROOF STEP]
have "?tau \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r2) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(9) t2_is_r2_v'_s2 r2_Vv_empty v'_in_E2 v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> E\<^bsub>ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
t2 = r2 @ [\<V>'] @ s2
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
\<V>' \<in> E\<^bsub>ES2\<^esub>
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from Cons(10) v'_notin_E1 t1'_Vv1_is_t1_Vv1
[PROOF STATE]
proof (chain)
picking this:
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
\<V>' \<notin> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
have "lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>"
[PROOF STATE]
proof (prove)
using this:
t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
\<V>' \<notin> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: projection_def, metis Int_commute
                    projection_def projection_intersection_neutral t1'_in_E1star)
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
using propSepViews
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
by (simp add: projection_def, metis Int_commute
                    projection_def projection_intersection_neutral Cons(4))
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
note Cons(8) v'_notin_E1 t1'_Vv1_is_t1_Vv1
[PROOF STATE]
proof (state)
this:
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. \<lbrakk>t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; \<V>' \<notin> E\<^bsub>ES1\<^esub>; t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>\<rbrakk> \<Longrightarrow> lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>
(\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
\<V>' \<notin> E\<^bsub>ES1\<^esub>
t1' \<upharpoonleft> V\<^bsub>\<V>1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>1\<^esub>

goal (1 subgoal):
 1. lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note s2_Cv2_empty t1'_Cv1_empty
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note Cons.hyps(1)[of ?tau t1' s2]
[PROOF STATE]
proof (state)
this:
\<lbrakk>set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2 \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s2 \<subseteq> E\<^bsub>ES2\<^esub>
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
\<lbrakk>set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2 \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
obtain t'
                where \<tau>r2v't'_in_Tr: "?tau @ t' \<in> Tr\<^bsub>(ES1 \<parallel> ES2)\<^esub>"
                and t'_Vv_is_lambda': "t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'"
                and t'_Cv_empty: "t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
using this:
set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>
set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>
set s2 \<subseteq> E\<^bsub>ES2\<^esub>
set t1' \<subseteq> E\<^bsub>ES1\<^esub>
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>
(\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>
lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>
s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []
t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []
\<lbrakk>set (\<tau> @ r2 @ [\<V>']) \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1' \<subseteq> E\<^bsub>ES1\<^esub>; set s2 \<subseteq> E\<^bsub>ES2\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1' \<in> Tr\<^bsub>ES1\<^esub>; (\<tau> @ r2 @ [\<V>']) \<upharpoonleft> E\<^bsub>ES2\<^esub> @ s2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1' \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = s2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1' \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; s2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. (\<tau> @ r2 @ [\<V>']) @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (\<And>t'. \<lbrakk>(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>; t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'; t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []\<rbrakk> \<Longrightarrow> thesis) \<Longrightarrow> thesis
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
let ?t = "r2 @ [\<V>'] @ t'"
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
note \<tau>r2v't'_in_Tr
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from r2_Vv_empty t'_Vv_is_lambda' v'_in_Vv
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>
[PROOF STEP]
have "?t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> = []
t' \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda'
\<V>' \<in> V\<^bsub>\<V>\<^esub>

goal (1 subgoal):
 1. (r2 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
[PROOF STEP]
by (simp add: projection_def)
[PROOF STATE]
proof (state)
this:
(r2 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
moreover
[PROOF STATE]
proof (state)
this:
(r2 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "?t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. (r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. (r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have "r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []"
[PROOF STATE]
proof (prove)
goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
proof -
[PROOF STATE]
proof (state)
goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from propSepViews
[PROOF STATE]
proof (chain)
picking this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2
[PROOF STEP]
have "E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>"
[PROOF STATE]
proof (prove)
using this:
properSeparationOfViews ES1 ES2 \<V> \<V>1 \<V>2

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
unfolding properSeparationOfViews_def
[PROOF STATE]
proof (prove)
using this:
V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> = V\<^bsub>\<V>1\<^esub> \<and> V\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> = V\<^bsub>\<V>2\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES1\<^esub> \<subseteq> C\<^bsub>\<V>1\<^esub> \<and> C\<^bsub>\<V>\<^esub> \<inter> E\<^bsub>ES2\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub> \<and> N\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> = {}

goal (1 subgoal):
 1. E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
from projection_on_subset[OF \<open>E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub> \<subseteq> C\<^bsub>\<V>2\<^esub>\<close> r2_Cv2_empty]
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
have "r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []"
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
by (simp only: Int_commute)
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with projection_intersection_neutral[OF r2_in_E2star, of "C\<^bsub>\<V>\<^esub>"]
[PROOF STATE]
proof (chain)
picking this:
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub>
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub>
r2 \<upharpoonleft> (E\<^bsub>ES2\<^esub> \<inter> C\<^bsub>\<V>\<^esub>) = []

goal (1 subgoal):
 1. r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by simp
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
with v'_in_Vv VIsViewOnE t'_Cv_empty
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>\<^esub>
isViewOn \<V> E\<^bsub>ES1 \<parallel> ES2\<^esub>
t' \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
r2 \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. (r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by (simp add: isViewOn_def V_valid_def
                    VC_disjoint_def VN_disjoint_def NC_disjoint_def projection_def, auto)
[PROOF STATE]
proof (state)
this:
(r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
(r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r2 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
have ?thesis
[PROOF STATE]
proof (prove)
using this:
(\<tau> @ r2 @ [\<V>']) @ t' \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub>
(r2 @ [\<V>'] @ t') \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda'
(r2 @ [\<V>'] @ t') \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<And>\<tau> t1 t2. \<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda' \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda' \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []; set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set (\<V>' # lambda') \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; (\<V>' # lambda') \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
ultimately
[PROOF STATE]
proof (chain)
picking this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
show ?thesis
[PROOF STATE]
proof (prove)
using this:
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<or> \<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub>
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<inter> \<nabla>\<^bsub>\<Gamma>2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>1\<^esub> - E\<^bsub>ES2\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
\<V>' \<in> V\<^bsub>\<V>2\<^esub> - E\<^bsub>ES1\<^esub> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []
[PROOF STEP]
by blast
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = \<V>' # lambda' \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal:
No subgoals!
[PROOF STEP]
qed
[PROOF STATE]
proof (state)
this:
\<lbrakk>set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set lambda \<subseteq> V\<^bsub>\<V>\<^esub>; set t1 \<subseteq> E\<^bsub>ES1\<^esub>; set t2 \<subseteq> E\<^bsub>ES2\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub>; \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
}
[PROOF STATE]
proof (state)
this:
\<lbrakk>set ?\<tau>2 \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set ?lambda2 \<subseteq> V\<^bsub>\<V>\<^esub>; set ?t1.2 \<subseteq> E\<^bsub>ES1\<^esub>; set ?t2.2 \<subseteq> E\<^bsub>ES2\<^esub>; ?\<tau>2 \<upharpoonleft> E\<^bsub>ES1\<^esub> @ ?t1.2 \<in> Tr\<^bsub>ES1\<^esub>; ?\<tau>2 \<upharpoonleft> E\<^bsub>ES2\<^esub> @ ?t2.2 \<in> Tr\<^bsub>ES2\<^esub>; ?lambda2 \<upharpoonleft> E\<^bsub>ES1\<^esub> = ?t1.2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?lambda2 \<upharpoonleft> E\<^bsub>ES2\<^esub> = ?t2.2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?t1.2 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; ?t2.2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. ?\<tau>2 @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = ?lambda2 \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<lbrakk>\<nabla>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Delta>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<Upsilon>\<^bsub>\<Gamma>1\<^esub> \<subseteq> E\<^bsub>ES1\<^esub>; \<nabla>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Delta>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; \<Upsilon>\<^bsub>\<Gamma>2\<^esub> \<subseteq> E\<^bsub>ES2\<^esub>; BSIA \<rho>1 \<V>1 Tr\<^bsub>ES1\<^esub>; BSIA \<rho>2 \<V>2 Tr\<^bsub>ES2\<^esub>; EventSystems.total ES1 (C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub>); EventSystems.total ES2 (C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub>); FCIA \<rho>1 \<Gamma>1 \<V>1 Tr\<^bsub>ES1\<^esub>; FCIA \<rho>2 \<Gamma>2 \<V>2 Tr\<^bsub>ES2\<^esub>; V\<^bsub>\<V>1\<^esub> \<inter> V\<^bsub>\<V>2\<^esub> \<subseteq> \<nabla>\<^bsub>\<Gamma>1\<^esub> \<union> \<nabla>\<^bsub>\<Gamma>2\<^esub>; C\<^bsub>\<V>1\<^esub> \<inter> N\<^bsub>\<V>2\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>1\<^esub>; C\<^bsub>\<V>2\<^esub> \<inter> N\<^bsub>\<V>1\<^esub> \<subseteq> \<Upsilon>\<^bsub>\<Gamma>2\<^esub>; N\<^bsub>\<V>1\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>1\<^esub> \<inter> E\<^bsub>ES2\<^esub> = {}; N\<^bsub>\<V>2\<^esub> \<inter> \<Delta>\<^bsub>\<Gamma>2\<^esub> \<inter> E\<^bsub>ES1\<^esub> = {}\<rbrakk> \<Longrightarrow> \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
thus ?thesis
[PROOF STATE]
proof (prove)
using this:
\<lbrakk>set ?\<tau>2 \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub>; set ?lambda2 \<subseteq> V\<^bsub>\<V>\<^esub>; set ?t1.2 \<subseteq> E\<^bsub>ES1\<^esub>; set ?t2.2 \<subseteq> E\<^bsub>ES2\<^esub>; ?\<tau>2 \<upharpoonleft> E\<^bsub>ES1\<^esub> @ ?t1.2 \<in> Tr\<^bsub>ES1\<^esub>; ?\<tau>2 \<upharpoonleft> E\<^bsub>ES2\<^esub> @ ?t2.2 \<in> Tr\<^bsub>ES2\<^esub>; ?lambda2 \<upharpoonleft> E\<^bsub>ES1\<^esub> = ?t1.2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?lambda2 \<upharpoonleft> E\<^bsub>ES2\<^esub> = ?t2.2 \<upharpoonleft> V\<^bsub>\<V>\<^esub>; ?t1.2 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = []; ?t2.2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = []\<rbrakk> \<Longrightarrow> \<exists>t. ?\<tau>2 @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = ?lambda2 \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = []

goal (1 subgoal):
 1. \<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])
[PROOF STEP]
by auto
[PROOF STATE]
proof (state)
this:
\<forall>\<tau> lambda t1 t2. set \<tau> \<subseteq> E\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> set lambda \<subseteq> V\<^bsub>\<V>\<^esub> \<and> set t1 \<subseteq> E\<^bsub>ES1\<^esub> \<and> set t2 \<subseteq> E\<^bsub>ES2\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES1\<^esub> @ t1 \<in> Tr\<^bsub>ES1\<^esub> \<and> \<tau> \<upharpoonleft> E\<^bsub>ES2\<^esub> @ t2 \<in> Tr\<^bsub>ES2\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES1\<^esub> = t1 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> lambda \<upharpoonleft> E\<^bsub>ES2\<^esub> = t2 \<upharpoonleft> V\<^bsub>\<V>\<^esub> \<and> t1 \<upharpoonleft> C\<^bsub>\<V>1\<^esub> = [] \<and> t2 \<upharpoonleft> C\<^bsub>\<V>2\<^esub> = [] \<longrightarrow> (\<exists>t. \<tau> @ t \<in> Tr\<^bsub>ES1 \<parallel> ES2\<^esub> \<and> t \<upharpoonleft> V\<^bsub>\<V>\<^esub> = lambda \<and> t \<upharpoonleft> C\<^bsub>\<V>\<^esub> = [])

goal:
No subgoals!
[PROOF STEP]
qed