imports
Main jointly_exhaustive examples "HOL-Eisbach.Eisbach_Tools"
begin
section‹Nests› text‹Nests are sets of intervals that share a meeting point. We define relation before between nests that give the ordering properties of points.›
subsection‹Definitions›
type_synonym 'a nest = "'a set"
definition (in arelations) BEGIN :: "'a ==> 'a nest" where"BEGIN i = {j | j. (j,i) ∈ ov ∪ s ∪ m ∪ f^-1 ∪ d^-1 ∪ e ∪ s^-1}"
definition (in arelations) END :: "'a ==> 'a nest" where"END i = {j | j. (j,i) ∈ e ∪ ov^-1 ∪ s^-1 ∪ d^-1 ∪ f ∪ f^-1 ∪ m^-1}"
definition (in arelations) NEST ::"'a nest ==> bool" where"NEST S ≡∃i. I i ∧ (S = BEGIN i ∨ S = END i)"
definition (in arelations) before :: "'a nest ==> 'a nest ==> bool" (infix‹≪›100) where"before N M ≡ NEST N ∧ NEST M ∧ (∃n m. 🍋‹I m ∧I n ∧› n ∈ N ∧ m ∈ M ∧ (n,m) ∈ b)"
subsection‹Properties of Nests›
lemma intv1: assumes"I i" shows"i ∈ BEGIN i" unfolding BEGIN_def by (simp add:e assms)
lemma intv2: assumes"I i" shows"i ∈ END i" unfolding END_def by (simp add: e assms)
lemma NEST_nonempty: assumes"NEST S" shows"S ≠ {}" using assms unfolding NEST_def by (insert intv1 intv2, auto)
lemma NEST_BEGIN: assumes"I i" shows"NEST (BEGIN i)" using NEST_def assms by auto
lemma NEST_END: assumes"I i" shows"NEST (END i)" using NEST_def assms by auto
lemma before: assumes a:"I i" shows"BEGIN i ≪ END i" proof -
obtain p where pi:"(p,i) ∈ m" using a M3 m by blast thenhave p:"p ∈ BEGIN i"using BEGIN_def by auto
obtain q where qi:"(q,i) ∈ m^-1" using a M3 m by blast thenhave q:"q ∈ END i"using END_def by auto
from pi qi have c1:"(p,q) ∈ b"using b m by blast
with c1 p q assms show ?thesis by (auto simp:NEST_def before_def)
qed
lemma meets: fixes i j assumes"I i"and"I j" shows"(i,j) ∈ m = ((END i) = (BEGIN j))" proof assume ij:"(i,j) ∈ m"thenhave ibj:"i ∈ (BEGIN j)"unfolding BEGIN_def by auto from ij have ji:"(j,i) ∈ m^-1"by simp thenhave jeo:"j ∈ (END i)"unfolding END_def by simp show"((END i) = (BEGIN j))" proof
{fix x::"'a"assume a:"x ∈ (END i)" thenhave asimp:"(x,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ m-1∪ f^-1" unfolding END_def by auto thenhave"x ∈ (BEGIN j)"using ij eovisidifmifiOm by (auto simp:BEGIN_def)
} thus conc1:"END i ⊆ BEGIN j"by auto next
{fix x assume b:"x ∈ (BEGIN j)" thenhave bsimp:"(x,j) ∈ ov ∪ s∪ m ∪ f^-1 ∪ d^-1 ∪ e ∪ s^-1" unfolding BEGIN_def by auto thenhave"x ∈ (END i)"using ij ovsmfidiesiOmi by (auto simp:END_def)
}thus conc2:"BEGIN j ⊆ END i"by auto qed next assume a0:"END (i::'a) = BEGIN (j::'a)"show"(i,j) ∈ m" proof (rule ccontr) assume a:"(i,j) ∉ m"thenhave"¬i∥j"using m by auto from a have"(i,j) ∈ b ∪ ov ∪ s ∪ d ∪ f^-1 ∪ e ∪ f ∪ s^-1 ∪ d^-1 ∪ ov^-1 ∪ m^-1∪ b^-1"using assms JE by auto thus False proof (auto)
{assume ij:"(i,j) ∈ e" obtain p where ip:"i∥p"using M3 assms(1) by auto thenhave pi:"(p,i)∈ m^-1"using m by auto thenhave"p ∈ END i"using END_def by auto with a0 have pj:"p ∈ (BEGIN j) "by auto from ij pi have"(p,j) ∈ m^-1"by (simp add: e) with pj show ?thesis apply (auto simp:BEGIN_def) using m_rules by auto[7] } next
{assume ij: "(j,i) ∈ m" obtain p where ip:"i∥p"using M3 assms(1) by auto thenhave pi:"(p,i)∈ m^-1"using m by auto thenhave"p ∈ END i"using END_def by auto with a0 have pj:"p ∈ (BEGIN j) "by auto from ij have"(i,j) ∈ m^-1"by simp with pi have"(p,j) ∈ b^-1"using cmimi by auto with pj show ?thesis apply (auto simp:BEGIN_def) using b_rules by auto
}
next
{assume ij:"(i,j)∈ b" have ii:"(i,i)∈e"and"i ∈ END i"using assms intv2 e by auto with a0 have j:"i ∈ BEGIN j"by simp with ij show ?thesis apply (auto simp:BEGIN_def) using b_rules by auto
}
next
{ assume ji:"(j,i) ∈ b"thenhave ij:"(i,j) ∈ b^-1"by simp have ii:"(i,i)∈e"and"i ∈ END i"using assms intv2 e by auto with a0 have j:"i ∈ BEGIN j"by simp with ij show ?thesis apply (auto simp:BEGIN_def) using b_rules by auto}
next
{assume ij:"(i,j)∈ov" thenobtain u v::"'a"where iu:"i∥u"and uv:"u∥v"and uv:"u∥v"using ov by blast from iu have"u ∈ END i"using m END_def by auto with a0 have u:"u ∈ BEGIN j"by simp from iu have"(u,i) ∈ m^-1"using m by auto with ij have uj:"(u,j) ∈ ov^-1 ∪ d ∪ f"using covim by auto show ?thesis using u uj apply (auto simp:BEGIN_def) using ov_rules eovi apply auto[9] using s_rules apply auto[2] using d_rules apply auto[5] using f_rules by auto[5]
}
next
{assume"(j,i) ∈ ov"thenhave ij:"(i,j)∈ov^-1"by simp let ?p = i from ij have pi:"(?p, i) ∈ e"by (simp add:e) from ij have pj:"(?p,j) ∈ ov^-1"by simp from pi have"?p ∈ END i"using END_def by auto with a0 have"?p ∈ (BEGIN j) "by auto with pj show ?thesis apply (auto simp:BEGIN_def) using ov_rules by auto
} next
{assume ij:"(i,j) ∈ s" thenobtain p q t where ip:"i∥p"and pq:"p∥q"and jq:"j∥q"and ti:"t∥i"and tj:"t∥j"using s by blast from ip have"(p,i) ∈ m^-1"using m by auto thenhave"p ∈ END i"using END_def by auto with a0 have p:"p ∈ BEGIN j"by simp from ti ip pq tj jq have"(p,j) ∈ f"using f by blast with p show ?thesis apply (auto simp:BEGIN_def) using f_rules by auto
} next
{assume"(j,i) ∈ s"thenhave ij:"(i,j) ∈ s^-1"by simp thenobtain u v where ju:"j∥u"and uv:"u∥v"and iv:"i∥v"using s by blast from iv have"(v,i) ∈ m^-1"using m by blast thenhave"v ∈ END i"using END_def by auto with a0 have v:"v ∈ BEGIN j"by simp from ju uv have"(v,j) ∈ b^-1"using b by auto with v show ?thesis apply (auto simp:BEGIN_def) using b_rules by auto} next
{assume ij:"(i,j) ∈ f" have"(i,i) ∈ e"and"i ∈ END i" by (simp add: e) (auto simp: assms intv2 ) with a0 have"i ∈ BEGIN j"by simp with ij show ?thesis apply (auto simp:BEGIN_def) using f_rules by auto
} next
{assume"(j,i) ∈ f"thenhave"(i,j)∈f^-1"by simp thenobtain u where ju:"j∥u"and iu:"i∥u"using f by auto thenhave ui:"(u,i) ∈ m^-1"and"u ∈ END i" apply (simp add: converse.intros m) using END_def iu m by auto with a0 have ubj:"u ∈ BEGIN j"by simp from ju have"(u,j) ∈ m^-1"by (simp add: converse.intros m) with ubj show ?thesis apply (auto simp:BEGIN_def) using m_rules by auto
} next
{assume ij:"(i,j) ∈ d"then have"(i,i) ∈ e"and"i ∈ END i"using assms e by (blast, simp add: intv2) with a0 have"i ∈ BEGIN j"by simp with ij show ?thesis apply (auto simp:BEGIN_def) using d_rules by auto} next
{assume ji:"(j,i) ∈ d"thenhave"(i,j) ∈ d^-1"using d by simp thenobtain u v where ju:"j∥u"and uv:"u∥v"and iv:"i∥v"using d using ji by blast thenhave"(v,i) ∈ m^-1"and"v ∈ END i"using m END_def by auto with a0 ju uv have vj:"(v,j) ∈ b^-1"and"v ∈ BEGIN j"using b by auto with vj show ?thesis apply (auto simp:BEGIN_def) using b_rules by auto}
qed qed qed
lemma starts: fixes i j assumes"I i"and"I j" shows"((i,j) ∈ s ∪ s^-1 ∪ e) = (BEGIN i = BEGIN j)" proof assume a3:"(i,j) ∈ s ∪ s^-1 ∪ e"show"BEGIN i = BEGIN j" proof -
{ fix x assume"x ∈ BEGIN i"thenhave"(x,i) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto hence"x ∈ BEGIN j"using a3 ovsmfidiesiOssie by (auto simp:BEGIN_def)
} note c1 = this
{ fix x assume"x ∈ BEGIN j"thenhave xj:"(x,j) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto thenhave"x ∈ BEGIN i" apply (insert converseI[OF a3] xj) apply (subst (asm) converse_Un)+ apply (subst (asm) converse_converse) using ovsmfidiesiOssie by (auto simp:BEGIN_def)
} note c2 = this
from c1 have"BEGIN i ⊆ BEGIN j"by auto moreoverwith c2 have"BEGIN j ⊆ BEGIN i"by auto ultimatelyshow ?thesis by auto qed next assume a4:"BEGIN i = BEGIN j" with assms have"i ∈ BEGIN j"and"j ∈ BEGIN i"using intv1 by auto thenhave ij:"(i,j) ∈ ov ∪ s ∪ m ∪ f^-1 ∪ d^-1 ∪ e ∪ s^-1"and ji:"(j,i) ∈ ov ∪ s ∪ m ∪ f^-1 ∪ d^-1 ∪ e ∪ s^-1" unfolding BEGIN_def by auto thenhave ijov:"(i,j) ∉ ov" apply auto using ov_rules by auto
from ij ji have ijm:"(i,j) ∉ m" apply (simp_all, elim disjE, simp_all) using ov_rules apply auto[13] using s_rules apply auto[11] using m_rules apply auto[9] using f_rules apply auto[7] using d_rules apply auto[5] using m_rules by auto[4]
from ij ji have ijfi:"(i,j) ∉ f^-1" apply (simp_all, elim disjE, simp_all) using ov_rules apply auto[13] using s_rules apply auto[11] using m_rules apply auto[9] using f_rules apply auto[7] using d_rules apply auto[5] using f_rules by auto[4]
from ij ji have ijdi:"(i,j) ∉ d^-1" apply (simp_all, elim disjE, simp_all) using ov_rules apply auto[13] using s_rules apply auto[11] using m_rules apply auto[9] using f_rules apply auto[7] using d_rules apply auto[5] using d_rules by auto[4]
from ij ijm ijov ijfi ijdi show"(i, j) ∈ s ∪ s-1∪ e"by auto
qed
lemma xj_set:"x ∈ {a |a. (a, j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1} = ((x,j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1)" by blast
lemma ends: fixes i j assumes"I i"and"I j" shows"((i,j) ∈ f ∪ f^-1 ∪ e) = (END i = END j)" proof assume a3:"(i,j) ∈ f ∪ f^-1 ∪ e"show"END i = END j" proof -
{ fix x assume"x ∈ END i"thenhave"(x,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto thenhave"x ∈ END j"using a3 unfolding END_def apply (subst xj_set) using ceovisidiffimi_ffie_simp by simp
} note c1 =this
{ fix x assume"x ∈ END j"thenhave"(x,j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto thenhave"x ∈ END i"using a3 unfolding END_def by (metis Un_iff ceovisidiffimi_ffie_simp converse_iff eei mem_Collect_eq)
} note c2 = this
from c1 have"END i ⊆ END j"by auto moreoverwith c2 have"END j ⊆ END i"by auto ultimatelyshow ?thesis by auto qed(*} note conc = this *) next assume a4:"END i = END j" with assms have"i ∈ END j"and"j ∈ END i"using intv2 by auto thenhave ij:"(i,j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"and ji:"(j,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1" unfolding END_def by auto thenhave ijov:"(i,j) ∉ ov^-1" apply (simp_all, elim disjE, simp_all) using eov es ed efi ef em eov apply auto[13] using ov_rules apply auto[11] using s_rules apply auto[9] using d_rules apply auto[7] using f_rules apply auto[8] using movi by auto
from ij ji have ijm:"(i,j) ∉ m^-1" apply (simp_all, elim disjE, simp_all) using m_rules by auto
from ij ji have ijfi:"(i,j) ∉ s^-1" apply (simp_all, elim disjE, simp_all) using s_rules by auto
from ij ji have ijdi:"(i,j) ∉ d^-1" apply (simp_all, elim disjE, simp_all) using d_rules by auto
from ij ijm ijov ijfi ijdi show"(i, j) ∈ f ∪ f-1∪ e"by auto qed
lemma before_irrefl: fixes a shows"¬ a ≪ a" proof (rule ccontr, auto) assume a0:"a ≪ a" thenhave"NEST a"unfolding before_def by auto thenobtain i where i:"a = BEGIN i ∨ a = END i"unfolding NEST_def by auto from i show False proof assume"a = BEGIN i" with a0 have"BEGIN i ≪ BEGIN i"by simp thenobtain p q where"p∈ BEGIN i"and"q ∈ BEGIN i"and b:"(p,q) ∈ b"unfolding before_def by auto thenhave a1:"(p,i) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"and a2:"(i,q) ∈ ov^-1 ∪ s^-1∪ m^-1 ∪ f ∪ d ∪ e ∪ s"unfolding BEGIN_def apply auto using eei apply fastforce by (simp add: e)+ with b show False using piiq[of p i q] using b_rules by safe fast+ next assume"a = END i" with a0 have"END i ≪ END i"by simp thenobtain p q where"p∈ END i"and"q ∈ END i"and b:"(p,q) ∈ b"unfolding before_def by auto thenhave a1:"(p,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"and a2:"(q,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto with b show False apply (subst (asm) converse_iff[THEN sym]) using cbi_alpha1ialpha4mi neq_bi_alpha1ialpha4mi relcomp.relcompI subsetCE by blast qed qed
lemma BEGIN_before: fixes i j assumes"I i"and"I j" shows"BEGIN i ≪ BEGIN j = ((i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1)" proof
assume a3:"BEGIN i ≪ BEGIN j" from a3 obtain p q where pa:"p ∈ BEGIN i"and qc:"q ∈ BEGIN j"and pq:"(p,q) ∈ b"unfoldingbefore_def by auto thenobtain r where"p∥r"and"r∥q"using b by auto thenhavepr:"(p,r) ∈ m"and rq:"(r,q) ∈ m"using m by auto from pa have pi:"(p,i) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto moreoverwithprhave"(r,p) ∈ m^-1"by simp ultimatelyhave"(r,i) ∈ d ∪ f ∪ ov^-1 ∪ e ∪ f^-1 ∪ m^-1 ∪ b^-1 ∪ s ∪ s^-1" using cmiov cmis cmim cmifi cmidi cmisi apply ( simp_all,elim disjE, auto) by (simp add: e)
thenhave ir:"(i,r) ∈ d^-1 ∪ f^-1 ∪ ov ∪ e ∪ f ∪ m ∪ b ∪ s^-1 ∪ s" by (metis (mono_tags, lifting) converseD converse_Un converse_converse eei)
from qc have"(q,j) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto with rq have rj:"(r,j) ∈ b ∪ s ∪ m " using m_ovsmfidiesi using contra_subsetD relcomp.relcompI by blast
with ir have c1:"(i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1∪ d ∪ e ∪ s ∪ s-1" using difibs by blast
{assume"(i,j) ∈ s∨ (i,j)∈s^-1 ∨ (i,j) ∈ e"thenhave"BEGIN i = BEGIN j" using starts Un_iff assms(1) assms(2) by blast with a3 have False by (simp add: before_irrefl)}
from c1 have c1':"(i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1∪ d " using‹(i, j) ∈ s ∨ (i, j) ∈ s-1∨ (i, j) ∈ e ==> False›by blast
{assume"(i,j) ∈ d"with pi have"(p,j) ∈ e ∪ s ∪ d ∪ ov ∪ ov^-1 ∪ s^-1 ∪ f ∪ f^-1 ∪ d^-1" using ovsmfidiesi_d using relcomp.relcompI subsetCE by blast with pq have"(q,j) ∈ b^-1 ∪ d ∪ f ∪ ov^-1 ∪ m^-1" apply (subst (asm) converse_iff[THEN sym]) using cbi_esdovovisiffidi by blast with qc have False unfolding BEGIN_def apply (subgoal_tac "(q, j) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1") prefer2 apply simp using neq_beta2i_alpha2alpha5m by auto
}
with c1' show"((i, j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1)"by auto next assume"(i, j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1" thenshow"BEGIN i ≪ BEGIN j" proof ( simp_all,elim disjE, simp_all) assume"(i,j) ∈ b"thus ?thesis using intv1 using before_def NEST_BEGIN assms by metis next assume iu:"(i,j) ∈ m" obtain l where li:"(l,i) ∈ m"using M3 m meets_wd assms by blast with iu have"(l,j) ∈ b"using cmm by auto moreoverfrom li have"l ∈ (BEGIN i)"using BEGIN_def by auto ultimatelyshow ?thesis using intv1 before_def NEST_BEGIN assms by blast next assume iu:"(i,j) ∈ ov" obtain l where li:"(l,i) ∈ m"using M3 m meets_wd assms by blast with iu have"(l,j) ∈ b"using cmov by auto moreoverfrom li have"l ∈ (BEGIN i)"using BEGIN_def by auto ultimatelyshow ?thesis using intv1 before_def NEST_BEGIN assms by blast next assume iu:"(j,i) ∈ f" obtain l where li:"(l,i) ∈ m"using M3 m meets_wd assms by blast with iu have"(l,j) ∈ b"using cmfi by auto moreoverfrom li have"l ∈ (BEGIN i)"using BEGIN_def by auto ultimatelyshow ?thesis using intv1 before_def NEST_BEGIN assms by blast next assume iu:"(j,i) ∈ d" obtain l where li:"(l,i) ∈ m"using M3 m meets_wd assms by blast with iu have"(l,j) ∈ b"using cmdi by auto moreoverfrom li have"l ∈ (BEGIN i)"using BEGIN_def by auto ultimatelyshow ?thesis using intv1 before_def NEST_BEGIN assms by blast
qed qed
lemma BEGIN_END_before: fixes i j assumes"I i"and"I j" shows"BEGIN i ≪ END j = ((i,j) ∈ e ∪ b ∪ m ∪ ov ∪ ov^-1 ∪ s ∪ s^-1 ∪ f ∪ f-1∪ d∪ d-1) " proof assume a3:"BEGIN i ≪ END j" thenobtain p q where pa:"p ∈ BEGIN i"and qc:"q ∈ END j"and pq:"(p,q) ∈ b"unfolding before_def by auto thenobtain r where"p∥r"and"r∥q"using b by auto thenhavepr:"(p,r) ∈ m"and rq:"(r,q) ∈ m"using m by auto from pa have pi:"(p,i) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto moreoverwithprhave"(r,p) ∈ m^-1"by simp ultimatelyhave"(r,i) ∈ d ∪ f ∪ ov^-1 ∪ e ∪ f^-1 ∪ m^-1 ∪ b^-1 ∪ s ∪ s^-1"using cmiov cmis cmim cmifi cmidi e cmisi by ( simp_all,elim disjE, auto simp:e)
thenhave ir:"(i,r) ∈ d^-1 ∪ f^-1 ∪ ov ∪ e ∪ f ∪ m ∪ b ∪ s^-1 ∪ s" by (metis (mono_tags, lifting) converseD converse_Un converse_converse eei)
from qc have"(q,j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto with rq have rj:"(r,j) ∈ m ∪ ov ∪ s ∪ d ∪ b ∪ f^-1 ∪ f ∪ e"using cm_alpha1ialpha4mi by blast
with ir show c1:"(i,j) ∈ e ∪ b ∪ m ∪ ov ∪ ov^-1 ∪ s ∪ s^-1 ∪ f ∪ f-1∪ d ∪ d-1" using difimov by blast next assume a4:"(i, j) ∈ e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1" thenshow"BEGIN i ≪ END j" proof ( simp_all,elim disjE, simp_all) assume"(i,j) ∈ e" obtain l k where l:"l∥i"and"i∥k"using M3 meets_wd assms by blast with‹(i,j) ∈ e›have k:"j∥k"by (simp add: e) from l k have"(l,i) ∈ m"and"(k,j) ∈ m^-1"using m by auto thenhave"l ∈ BEGIN i"and"k ∈ END j"using BEGIN_def END_def by auto moreoverfrom l ‹i∥k›have"(l,k) ∈ b"using b by auto ultimatelyshow ?thesis using before_def assms NEST_BEGIN NEST_END by blast next assume"(i,j) ∈ b" thenshow ?thesis using before_def assms NEST_BEGIN NEST_END intv1[of i] intv2[of j] by auto next assume"(i,j) ∈ m" obtain l where"l∥i"using M3 assms by blast thenhave"l∈BEGIN i"using m BEGIN_def by auto moreoverfrom‹(i,j)∈m›‹l∥i›have"(l,j) ∈ b"using b m by blast ultimatelyshow ?thesis using intv2[of j] assms NEST_BEGIN NEST_END before_def by blast next assume"(i,j) ∈ ov" thenobtain l k where li:"l∥i"and lk:"l∥k"and ku:"k∥j"using ov by blast from li have"l ∈ BEGIN i"using m BEGIN_def by auto moreoverfrom lk ku have"(l,j) ∈ b"using b by auto ultimatelyshow ?thesis using intv2[of j] assms NEST_BEGIN NEST_END before_def by blast next assume"(j,i) ∈ ov" thenobtain l k v where uv:"j∥v"and lk:"l∥k"and kv:"k∥v"and li:"l∥i"using ov by blast from li have"l ∈ BEGIN i"using m BEGIN_def by auto moreoverfrom uv have"v ∈ END j"using m END_def by auto moreoverfrom lk kv have"(l,v) ∈ b"using b by auto ultimatelyshow ?thesis using assms NEST_BEGIN NEST_END before_def by blast next assume"(i,j) ∈ s" thenobtain v v' where iv:"i∥v"and vvp:"v∥v'"and"j∥v'"using s by blast thenhave"v' ∈ END j"using END_def m by auto moreoverfrom iv vvp have"(i,v') ∈ b"using b by auto ultimatelyshow ?thesis using intv1[of i] assms NEST_BEGIN NEST_END before_def by blast next assume"(j,i) ∈ s" thenobtain l v where li:"l∥i"and lu:"l∥j"and"j∥v"using s by blast thenhave"v ∈ END j"using m END_def by auto moreoverfrom li have"l ∈ BEGIN i"using m BEGIN_def by auto moreoverfrom lu ‹j∥v›have"(l,v) ∈ b"using b by auto ultimatelyshow ?thesis using assms NEST_BEGIN NEST_END before_def by blast next assume"(i,j) : f" thenobtain l v where li:"l∥i"and iv:"i∥v"and"j∥v"using f by blast thenhave"v ∈ END j"using m END_def by auto moreoverfrom li have"l ∈ BEGIN i"using m BEGIN_def by auto moreoverfrom iv li have"(l,v) ∈ b"using b by auto ultimatelyshow ?thesis using assms NEST_BEGIN NEST_END before_def by blast next assume"(j,i) ∈ f" thenobtain l v where li:"l∥i"and iv:"i∥v"and"j∥v"using f by blast thenhave"v ∈ END j"using m END_def by auto moreoverfrom li have"l ∈ BEGIN i"using m BEGIN_def by auto moreoverfrom iv li have"(l,v) ∈ b"using b by auto ultimatelyshow ?thesis using assms NEST_BEGIN NEST_END before_def by blast next assume"(i,j) : d" thenobtain k v where ik:"i∥k"and kv:"k∥v"and"j∥v"using d by blast thenhave"v ∈ END j"using END_def m by auto moreoverfrom ik kv have"(i,v) ∈ b"using b by auto ultimatelyshow ?thesis using intv1[of i] assms NEST_BEGIN NEST_END before_def by blast next assume"(j,i) ∈ d" thenobtain l k where"l∥i"and lk:"l∥k"and ku:"k∥j"using d by blast thenhave"l ∈ BEGIN i"using BEGIN_def m by auto moreoverfrom lk ku have"(l,j) ∈ b"using b by auto ultimatelyshow ?thesis using intv2[of j] assms NEST_BEGIN NEST_END before_def by blast qed qed
lemma END_BEGIN_before: fixes i j assumes"I i"and"I j" shows"END i ≪ BEGIN j = ((i,j) ∈ b) " proof assume a3:"END i ≪ BEGIN j" from a3 obtain p q where pa:"p ∈ END i"and qc:"q ∈ BEGIN j"and pq:"(p,q) ∈ b"unfolding before_def by auto thenobtain r where"p∥r"and"r∥q"using b by auto thenhavepr:"(p,r) ∈ m"and rq:"(r,q) ∈ m"using m by auto from pa have pi:"(p,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto moreoverwithprhave"(r,p) ∈ m^-1"by simp ultimatelyhave"(r,i) ∈ m^-1 ∪ b^-1"using e cmiovi cmisi cmidi cmif cmifi cmimi by ( simp_all,elim disjE, auto simp:e)
thenhave ir:"(i,r) ∈ m ∪ b"by simp
from qc have"(q,j) ∈ ov ∪ s ∪ m ∪ f-1∪ d-1∪ e ∪ s-1"unfolding BEGIN_def by auto with rq have rj:"(r,j) ∈ b ∪ m "using cmov cms cmm cmfi cmdi e cmsi by (simp_all, elim disjE, auto simp:e)
with ir show"(i,j) ∈ b"using cmb cmm cbm cbb by auto
next assume"(i,j) ∈ b"thus"END i ≪ BEGIN j"using intv1[of j] intv2[of i] assms before_def NEST_END NEST_BEGIN by auto qed
lemma END_END_before: fixes i j assumes"I i"and"I j" shows"END i ≪ END j = ((i,j) ∈ b ∪ m ∪ ov ∪ s ∪ d) " proof assume a3:"END i ≪ END j" from a3 obtain p q where pa:"p ∈ END i"and qc:"q ∈ END j"and pq:"(p,q) ∈ b"unfolding before_def by auto thenobtain r where"p∥r"and"r∥q"using b by auto thenhavepr:"(p,r) ∈ m"and rq:"(r,q) ∈ m"using m by auto from pa have pi:"(p,i) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto moreoverwithprhave"(r,p) ∈ m^-1"by simp ultimatelyhave"(r,i) ∈ m^-1 ∪ b^-1"using e cmiovi cmisi cmidi cmif cmifi cmimi by ( simp_all,elim disjE, auto simp:e)
thenhave ir:"(i,r) ∈ m ∪ b"by simp
from qc have"(q,j) ∈ e ∪ ov-1∪ s-1∪ d-1∪ f ∪ f-1∪ m-1"unfolding END_def by auto with rq have rj:"(r,j) ∈ m ∪ ov ∪ s ∪ d ∪ b ∪ f^-1 ∪ e ∪ f "using e cmovi cmsi cmdi cmf cmfi cmmi by (simp_all, elim disjE, auto simp:e)
with ir show"(i,j) ∈ b ∪ m ∪ ov ∪ s ∪ d"using cmm cmov cms cmd cmb cmfi e cmf cbm cbov cbs cbd cbb cbfi cbf by (simp_all, elim disjE, auto simp:e) next assume"(i, j) ∈ b ∪ m ∪ ov ∪ s ∪ d" thenshow"END i ≪ END j" proof ( simp_all,elim disjE, simp_all) assume"(i,j) ∈ b"thus ?thesis using intv2[of i] intv2[of j] assms NEST_END before_def by blast next assume"(i,j) ∈ m" obtain v where"j∥v"using M3 assms by blast with‹(i,j) ∈ m›have"(i,v) ∈b"using b m by blast moreoverfrom‹j∥v›have"v ∈ END j"using m END_def by auto ultimatelyshow ?thesis using intv2[of i] assms NEST_END before_def by blast next assume"(i,j) : ov" thenobtain v v' where iv:"i∥v"and vvp:"v∥v'"and"j∥v'"using ov by blast thenhave"v' ∈ END j"using m END_def by auto moreoverfrom iv vvp have"(i,v') ∈ b"using b by auto ultimatelyshow ?thesis using intv2[of i] assms NEST_END before_def by blast next assume"(i,j) ∈ s" thenobtain v v' where iv:"i∥v"and vvp:"v∥v'"and"j∥v'"using s by blast thenhave"v' ∈ END j"using m END_def by auto moreoverfrom iv vvp have"(i,v') ∈ b"using b by auto ultimatelyshow ?thesis using intv2[of i] assms NEST_END before_def by blast next assume"(i,j) ∈ d" thenobtain v v' where iv:"i∥v"and vvp:"v∥v'"and"j∥v'"using d by blast thenhave"v' ∈ END j"using m END_def by auto moreoverfrom iv vvp have"(i,v') ∈ b"using b by auto ultimatelyshow ?thesis using intv2[of i] assms NEST_END before_def by blast qed qed
lemma overlaps: assumes"I i"and"I j" shows"(i,j) ∈ ov = ((BEGIN i ≪ BEGIN j) ∧ (BEGIN j ≪ END i) ∧ (END i ≪ END j))" proof
assume a:"(i,j) ∈ ov" thenobtain n t q u v where nt:"n∥t"and tj:"t∥j"and tq:"t∥q"and qu:"q∥u"and iu:"i∥u"and uv:"u∥v"and jv:"j∥v"and"n∥i"using ov by blast thenhave ni:"(n,i) ∈ m"using m by blast thenhave n:"n ∈ BEGIN i"unfolding BEGIN_def by auto from nt tj have nj:"(n,j) ∈ b"using b by auto have"j ∈ BEGIN j"using assms(2) by (simp add: intv1) with assms n nj have c1:"BEGIN i ≪ BEGIN j"unfolding before_def using NEST_BEGIN by blast
from tj have a1:"(t,j) ∈ m"and a2:"t ∈ BEGIN j"using m BEGIN_def by auto from iu have"(u,i) ∈ m^-1"and"u ∈ END i"using m END_def by auto with assms tq qu a2 have c2:"BEGIN j ≪ END i"unfolding before_def using b NEST_BEGIN NEST_END by blast
have"i ∈ END i"by (simp add: assms intv2) moreoverwith jv have"v ∈ END j"using m END_def by auto moreoverwith iu uv have"(i,v) ∈ b"using b by auto ultimatelyhave c3:"END i ≪ END j"using assms NEST_END before_def by blast
show"((BEGIN i ≪ BEGIN j) ∧ (BEGIN j ≪ END i) ∧ (END i ≪ END j))"using c1 c2 c3 by simp next assume a0:"((BEGIN i ≪ BEGIN j) ∧ (BEGIN j ≪ END i) ∧ (END i ≪ END j))" thenhave"(i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1∧ (i,j) ∈ e ∪ b^-1 ∪ m^-1 ∪ ov^-1 ∪ ov ∪ s^-1 ∪ s ∪ f^-1 ∪ f ∪ d^-1 ∪ d ∧ (i,j) ∈ b ∪ m ∪ ov ∪ s ∪ d" using BEGIN_before BEGIN_END_before END_END_before assms by (metis (no_types, lifting) converseD converse_Un converse_converse eei) thenhave"(i,j) ∈ (b ∪ m ∪ ov ∪ f-1∪ d-1) ∩ (e ∪ b^-1 ∪ m^-1 ∪ ov^-1 ∪ ov ∪ s^-1 ∪ s ∪ f^-1 ∪ f ∪ d^-1 ∪ d) ∩ (b ∪ m ∪ ov ∪ s ∪ d)" by (auto) thenshow"(i,j) ∈ ov" using inter_ov by blast
qed
subsection‹Ordering of nests›
class strict_order = fixes ls::"'a nest ==> 'a nest ==> bool" assumes
irrefl:"¬ ls a a"and
trans:"ls a c ==> ls c g ==> ls a g"and
asym:"ls a c ==>¬ ls c a"
class total_strict_order = strict_order + assumes trichotomy: "a = c ==> (¬ (ls a c) ∧¬ (ls c a))"
interpretation nest:total_strict_order "(≪) " proof
{ fix a::"'a nest" show"¬ a ≪ a" by (simp add: before_irrefl) } note irrefl_nest = this
{fix a c::"'a nest" assume"a = c" show"¬ a ≪ c ∧¬ c ≪ a" by (simp add: ‹a = c› irrefl_nest)} note trichotomy_nest = this
{fix a c g::"'a nest" assume a:"a ≪ c"and c:" c ≪ g" show" a ≪ g" proof - from a c have na:"NEST a"and nc:"NEST c"and ng:"NEST g"unfolding before_def by auto from na obtain i where i:"a = BEGIN i ∨ a = END i"and wdi:"I i"unfolding NEST_def by auto from nc obtain j where j:"c = BEGIN j ∨ c = END j"and wdj:"I j"unfolding NEST_def by auto from ng obtain u where u:"g = BEGIN u ∨ g = END u"and wdu:"I u"unfolding NEST_def by auto from i j u show ?thesis proof (elim disjE, auto) assume abi:"a = BEGIN i"and cbj:"c = BEGIN j"and gbu:"g = BEGIN u" from abi cbj a wdi wdj have"(i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1 "using BEGIN_before by auto moreoverfrom cbj gbu c wdj wdu have"(j,u) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1"using BEGIN_before byauto
ultimatelyhave c1:"(i,u) ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" using cbeta2_beta2 by blast
thenhave"a ≪ g"by (simp add: BEGIN_before abi gbu wdi wdu)
thus"BEGIN i ≪ BEGIN u"using abi gbu by auto next assume abi:"a = BEGIN i"and cbj:"c = BEGIN j"and geu:"g = END u" from abi cbj a wdi wdj have"(i,j) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1 "using BEGIN_before by auto moreoverfrom cbj geu c wdj wdu have"(j,u) : e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1"using BEGIN_END_before by auto ultimatelyhave"(i,u) ∈ e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1" using cbeta2_gammabm by blast
thenhave"a ≪ g" by (simp add: BEGIN_END_before abi geu wdi wdj wdu)
thus"BEGIN i ≪ END u"using abi geu by auto next assume abi:"a = BEGIN i"and cej:"c = END j"and gbu:"g = BEGIN u" from abi cej a wdi wdj have ij:"(i,j) : e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1"using BEGIN_END_before by auto from cej gbu c wdj wdu have"(j,u) ∈ b "using END_BEGIN_before by auto with ij have"(i,u) ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" using ebmovovissifsiddib by ( auto)
thus"BEGIN i ≪ BEGIN u" by (simp add: BEGIN_before abi gbu wdi wdu) next assume abi:"a = BEGIN i"and cej:"c = END j"and geu:"g = END u" with a have"(i,j) ∈ e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1" using BEGIN_END_before wdi wdj by auto moreoverfrom cej geu c wdj wdu have"(j,u) ∈ b ∪ m ∪ ov ∪ s ∪ d" using END_END_before by auto ultimatelyhave"(i,u) ∈ b ∪ m ∪ ov ∪ s ∪ d ∪ f^-1 ∪ d^-1 ∪ ov^-1 ∪ s-1∪ f ∪ e" using ebmovovissiffiddibmovsd by blast
thus"BEGIN i ≪ END u"using BEGIN_END_before wdi wdu by auto next assume aei:"a = END i"and cbj:"c = BEGIN j"and gbu:"g = BEGIN u" from a aei cbj wdi wdj have"(i,j) ∈ b" using END_BEGIN_before by auto moreoverfrom c cbj gbu wdj wdu have"(j,u) ∈ b ∪ m ∪ ov ∪ f-1∪ d-1" using BEGIN_before by auto ultimatelyhave"(i,u) : b"using cbb cbm cbov cbfi cbdi by (simp_all, elim disjE, auto) thus"END i ≪ BEGIN u"using END_BEGIN_before wdi wdu by auto next assume aei:"a = END i"and cbj:"c = BEGIN j"and geu:"g = END u" from a aei cbj wdi wdj have"(i,j) ∈ b" using END_BEGIN_before by auto moreoverfrom c cbj geu wdj wdu have"(j,u) ∈ e ∪ b ∪ m ∪ ov ∪ ov-1∪ s ∪ s-1∪ f ∪ f-1∪ d ∪ d-1" using BEGIN_END_before by auto ultimatelyhave"(i,u) ∈ b ∪ m ∪ ov ∪ s ∪ d" using bebmovovissiffiddi by blast thus"END i ≪ END u"using END_END_before wdi wdu by auto next assume aei:"a = END i"and cej:"c = END j"and gbu:"g = BEGIN u" from aei cej wdi wdj have"(i,j) ∈ b ∪ m ∪ ov ∪ s ∪ d"using END_END_before a by auto moreoverfrom cej gbu c wdj wdu have"(j,u) ∈ b"using END_BEGIN_before by auto ultimatelyhave"(i,u) ∈ b" using cbb cmb covb csb cdb by (simp_all, elim disjE, auto) thus"END i ≪ BEGIN u"using END_BEGIN_before wdi wdu by auto next assume aei:"a = END i"and cej:"c = END j"and geu:"g = END u" from aei cej wdi wdj have"(i,j) ∈ b ∪ m ∪ ov ∪ s ∪ d"using END_END_before a by auto moreoverfrom cej geu c wdj wdu have"(j,u) ∈ b ∪ m ∪ ov ∪ s ∪ d"using END_END_before by auto ultimatelyhave"(i,u) ∈ b ∪ m ∪ ov ∪ s ∪ d" using calpha1_alpha1 by auto thus"END i ≪ END u"using END_END_before wdi wdu by auto qed qed} note trans_nest = this
{ fix a c::"'a nest" assume a:"a ≪ c" show"¬ c ≪ a" apply (rule ccontr, auto) using a irrefl_nest trans_nest by blast} qed
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.