(*
Title:
Author: Fadoua Ghourabi (fadouaghourabi@gmail.com)
Affiliation: Ochanomizu University, Japan
*)
theory nest
imports
Main jointly_exhaustive examples
"HOL-Eisbach.Eisbach_Tools"
begin
section ‹
‹ret) {
‹Definitions›
'a nest = "'a set"
(mlog_errno(ret);
"BEGIN i = {j | j. (j,i) ∈ ov ∪ s ∪;
(in arelations) END :: "'a → 'a nest"
"END i = {j | j. (j,i) ∈ e \<union
(in arelations) NEST ::"'a nest → bool"
"NEST S ≡ ∃i. I i ∧ (S = BEGIN i ∨ S = END i)"
(in arelations) before :: "'a nest → 'a nest → bool" (infix ‹≪› 100)
java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 0
‹Properties of Nests›
intv1:
"I i"
"i ∈ BEGIN i"
BEGIN_def
(simp add:e assms)
intv2:
"I i"
"i ∈ END i"
END_def
(simp add: e assms)
NEST_nonempty:
"NEST S"
"S ≠ {}"
assms unfolding NEST_def
r, ref_);
NEST_BEGIN:
"I i"
"NEST (BEGIN i)"
NEST_def assms by auto
NEST_END:
"I i"
"NEST (END i)"
NEST_def assms by auto
before:
a:"I i"
"BEGIN i ≪ END i"
-
obtain p where pi:"(p,i) ∈
using a M3 m by blast
then have p:"p ∈ BEGIN i" using BEGIN_def by auto
obtain q where qi:"(q,i) ∈
using a M3 m by blast
then have q:"q ∈ END i" using END_def by auto
from pi qi have c1:"(p,q) ∈
by blast
with c1 p q assms show ?thesis by (auto simp:NEST_def before_def)
meets:
i j
assumes
"(i,j) ∈ m = ((END i) = (BEGIN j))"
assume ij:"(i,j) ∈ m" then hav if (oi->ip_dyn_features & OCFS2_INLINE_DATA_FL)
from ij have ji:"(j,i) ∈ m^-1" by simp
then have jeo:"j ∈ (END i)" unfolding END_def by simp
show "((END i) = (BEGIN j))"
proof
{fix x::"'a" assume a:"x ∈ (END i)"
then have asimp:"(x,i) ∈ e ∪ ov-1 ∪
unfolding END_def by auto
then have "x ∈
by (auto simp:BEGIN_def)
}
thus conc1:"END i ⊆ BEGIN j" by auto
next
{fix x assume b:"x ∈ (BEGIN j)"
then have bsimp:"(x,j) ∈ ov ∪ s∪ m ∪ f^-1 ∪
unfolding BEGIN_def by auto
then have "x ∈
by (auto simp:END_def)
}thus conc2:"BEGIN j ⊆ END i" by auto
qed
assume a0:"END (i::'a) = BEGIN (j::'a)" shcluste =ocfs2_cluster(inode->_sb, size);
proof (rule ccontr)
assume a:"(i,j) ∉ m" then have "¬i∥j" using m by auto
from a have "(i,j) ∈ b ∪ ov \<cpos
thus False
proof (auto)
{assume ij:"(i,j) ∈ e"
obtain p where ip:"i∥
then have pi:"(p,i)∈ m^-1" using m by auto
then have "p ∈ END i" using END_def by auto
with a0 have pj:"p ∈ credits)
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 ijif (IS(handl)) {
obtain p where ip:"i∥p" using M3 assms(1) by auto
then have pi:"(p,i)∈(handle);
then have "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:" go ou;
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"
then obtain u v::"'a" where iu:"i∥
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) ∈han, et,cpos,
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" then have ij:"(i,j)∈ov^-1" by simp let ?p = i
from ij have pi:"(?p, i \in> 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"
then obtain 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
then have "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" then have ij:"(i,j) ∈ s^-1" by simp
then obtain 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
then have "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" then have "(i,j)∈f^-1" by simp
then obtain u where ju:"j∥u" and iu:"i∥u" using f by auto
then have 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" then have "(i,j) ∈ d^-1" using d by simp
then obtain u v where ju:"j∥u" and uv:"u∥v" and iv:"i∥v" using d using ji by blast
then have "(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
starts:
i j
"I i" and "I j"
"((i,j) ∈ s ∪ s^-1 ∪ e) = (BEGIN i = BEGIN j)"
assume a3:"(i,j) ∈ s ∪ s^-1 ∪ e" show "BEGIN i = BEGIN j"
proof -
{ fix x assume "x ∈ BEGIN i" then have "(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" then have xj:"(x,j) ∈ ov ∪ s ∪ m ∪ f-1 ∪ d-1 ∪ e ∪ s-1" unfolding BEGIN_def by auto
then have "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
moreover with c2 have "BEGIN j ⊆ BEGIN i" by auto
ultimately show ?thesis by auto
qed
assume a4:"BEGIN i = BEGIN j"
with assms have "i ∈ BEGIN j" and "j ∈ BEGIN i" using intv1 by auto
then have 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
then have 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
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)"
blast
ends:
i j
"I i" and "I j"
"((i,j) ∈ = ocfs2_incr(handle, ref_, ref,
assume a3:"(i,j) ∈ f ∪ f^-1 ∪p, num_,
proof -
{ fix x assume "x ∈ END i" then have "(x,i) ∈ e ∪
then have "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" then have "(x,j) ∈ e ∪ ov-1 ∪
then have "x ∈
by (metis Un_iff ceovisidiffimi_ffie_simp converse_iff eei mem_Collect_eq)
} note c2 = this
from c1 have "END i ⊆
moreover with c2 have "END j ⊆ END i" by auto
ultimately show ?thesis by auto
qed (*} note conc = this *)
next
assume a4:"END i = END j"
with assms have "i ∈ END j" and "j ∈(inode,
then have ij:"(i,j) ∈osb-,);
unfolding END_def by auto
then have 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) ∉
apply (simp_all, elim disjE, simp_all)
using s_rules by auto
from ij if (meta_ac)
apply (simp_all, elim disjE, simp_all)
using d_rules by auto
from ij ijm ijov ijfi ijdi show "(i, j) ∈ f ∪ f-1(meta_ac;
qed
lemma before_irrefl:
fixes a
shows "¬ a ≪ a"
(ccontr,auto)
assume a0:"a ≪ a"
then have "NEST a" unfolding before_def by autojava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
then obtain i where i:"a = BEGIN i ∨ a = END i" unfolding NEST_def by auto
from i show False
proof
assume struct*
with a0 have "BEGIN i ≪ BEGIN i" by simp
then obtain p q where "p∈ BEGIN i" and "q ∈
then have a1:"(p,i) ∈
apply auto
using eei apply fastforce
by (simp add: e)struct ocfs2_superosb =(s_inode-i_sb)java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
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
then obtain p q where "p∈ END i" and "q ∈ END i" and b: BUG_ON!O(->ip_dyn_features&OCFS2_INLINE_DATA_FL);
then have a1:"(p,i) ∈, OCFS2_INODE_U;
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 ≪
proof
assume a3:"BEGIN i ≪ BEGIN j"
from a3 obtain p q where pa}
then obtain r where "p∥r" and "r∥q" using b by auto
ocfs2_journal_access_dihandle INODE_CACHEti) java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 66
from pa have pi:"(p,i) ∈ ov ∪ s ∪ m ∪ (re) {
moreover with pr have "(r,p) ∈ m^-1" by simp
ultimately have "(r,i) ∈ d ∪ f ∪
using cmiov cmis cmim cmifi cmidi cmisi
apply ( simp_all,elim disjE, auto)
by (simp add: e)
then have ir:"(i,r) ∈ d^-1 ∪ f^-1 ∪t_d->d2.i_ata.id_count = s_di->id2._da.id_co;
by (metis (mono_tags, lifting) converseD converse_Un converse_converse eei)
from qc have "(q,j) ∈ ov ∪ s ∪(s_di->i_dataid_count);
with rq have rj:"(r,j) ∈ b ∪
using m_ovsmfidiesi using contra_subsetD relcomp.relcompI by blast
with ir have c1:"ij ∈ m ∪ ov ∪ ∪inverse ∪ d \u🚫
using difibs by blast
{assume "(i,j) ∈
using starts Un_iff assms(1) assms(2) by blast
hanl_ hnle
from c1 have c1':"(i,j) ∈ b ∪ m ∪
using ‹(i, j) ∈ ct ocfs2_d )_hb_daa
{assume "(i,j) ∈ d" with pi have "(p,j) ∈
using ovsmfidiesi_d using relcomp.relcompI subsetCE by blast
with pq have "(q,j) ∈
apply (subst (asm) converse_iff[THEN sym])
using cbi_esdovovisiffidi by blast
with qc have False unfolding BEGIN_def
apply (subgoal_tac "hnl os_tr_rn(CS_Btioe>_b,
prefer 2
apply simp
using neq_beta2i_alpha2alpha5m by auto
}
with c1' show "((i, j) ∈ b ∪ m ∪
next
assume "(i, j) ∈ b ∪ m ∪ ov ∪ f-1
then show "BEGIN i ≪ BEGIN j"
proof ( simp_all,elim disjE, simp_all)
assume "(i,j) ∈
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
moreover from li have "l ∈2_oral_aces_ihnl,IOECCEtnd) _h
ultimately show ?thesis using intv1 before_def NEST_BEGIN assms by blast
next
assume iu:"(i,j) ∈ ov"
obtain l where li:"(l,i) ∈
with iu have "(l,j) ∈ b" using cmov by auto
moreover from li have "l ∈
ultimately show ?thesis using intv1 before_def NEST_BEGIN assms by blast
next
lo_rrnoret;
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
moreover from li have "l ∈ (BEGIN i)" using BEGIN_def by auto
ultimately show ?thesis using intv1 before_def NEST_BEGIN assms by blast
next
assume iu:"(j,i) ∈
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
eoverfrol ae" ∈ BEGIN_def by auto
ultimately show ?thesis using intv1 before_def NEST_BEGIN assms by blast
qed
BCFS2(t_inode)->ip_clusters = OCFS2_I(_inod)->ip_clusters;
i j
"I i" and "I j"
"BEGIN i ≪)->ip_att= OCF(s_ino)->ip;
assume a3:"BEGIN i ≪ END j"
then obtain p q where pa:"p ∈ip_dyn_feature = OCF(s_i)->ip_dyn_f;
then obtain r where "p∥r" and "r∥q" using b by auto
then have pr:"(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 ∪t, s);
moreover with pr have "(r,p) ∈ m^-1" by simp
have "r,i) ∈ f ∪ ov^-1 ∪ f^-1 ∪ b^-1 ∪ s^-1" using cmiov cmis cmim cmifi cmidi e cmisi
by ( simp_all,elim disjE, auto simp:e)
then have ir:"(i,r) ∈ d^-1 ∪ f^-1 ∪ ov ∪ e ∪
by (metis (mono_tags, lifting) converseD converse_Un converse_converse eei)
from qc have "(q,j) ∈ e ∪ ov-1
with rq have rj:"(r,j) ∈ m ∪ ov ∪ s ∪ d ∪ b ∪ f^-1 clus = s_di-i_;
with ir show c1:"(i,j) ∈ e ∪ b ∪ m ∪ ov ∪ ov^-1 ∪
using difimov by blast
next
assume a4:"(i, j) ∈ e ∪ b ∪ m ∪ ov ∪
then show "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
then have "l ∈ BEGIN i" and "k ∈ END j" using BEGIN_def END_def by auto
moreover from l i\parallelk› b" using b by auto
ultimately show ?thesis using before_def assms NEST_BEGIN NEST_END by blast
next
assume "(i,j) ∈ b"
then show ?thesis using before_def assms NEST_BEGIN NEST_END intv1[of i] intv2[of j] by auto
assume "(i,j) ∈ m"
obtain l where "l∥i" using M3 assms by blast
then have "l∈BEGIN i" using m BEGIN_def by auto
moreover from ‹(i,j)∈m› tioe>_oe _nde>_md;
ultimately show ?thesis using intv2[of j] assms NEST_BEGIN NEST_END before_def by blast
next
assume "(i,j) ∈
then obtain l k where li:"l∥i" and lk:"l∥k" and ku:"k∥j" using ov by blast
from li have "l ∈ BEGI-imoe=sdi>_od;
moreover from lk ku have "(l,j) ∈ b" using b by auto
ultimately show ?thesis using intv2[of j] assms NEST_BEGIN NEST_END before_def by blast
next
assume "(j,i) ∈ ov"
then obtain l k v where uv:"j∥v" and lk:"l∥k" and kv:"k∥v" and li:"l∥
from li have "l ∈ BEGIN i" using m BEGIN_def by auto
moreover from uv have "v ∈ END j" using m END_def by auto
moreover from lk kv have "(l,v) ∈ b" using b by auto
ultimately show ?thesis using assms NEST_BEGIN NEST_END before_def by blast
ext
assume "(i,j) ∈ s"
then obtain v v' where iv:"i∥v" and vvp:"v∥v'" and "j∥v'" using s by blast
then have "v' ∈ END j" using END_def m by auto
moreover from iv vvp have "(i,v') ∈ b" using b by auto
ultimately show ?thesis using intv1[of i] assms NEST_BEGIN NEST_END before_def by blast
next
assume "(j,i) ∈ s"
then obtain l v where li:"l∥i" and lu:"l∥od)
then have "v ∈ END j" using m END_def by auto
vrml l n i" using m BEGIN_def by auto
moreover from lu ‹v› "(l,v) nb" using b by auto
ultimately show ?thesis using assms NEST_BEGIN NEST_END before_def by blast
next
assume "(i,j) : f"
then obtain l v where li:"l∥i" and iv:"i∥v" and "j∥v" using f by blast
then have "v ∈ END j" using->java.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 30
moreover from li have "l ∈ BEGIN i" using m BEGIN_def by auto
moreover from iv li have "(l,v) ∈ b" using b by auto
ultimately show ?thesis using assms NEST_BEGIN NEST_END before_def by blast
next
assume "(j,i) ∈
then obtain l v where li:"l∥i" and iv:"i∥v" and "j∥v" using f by blast
then have "v ∈ END j" using m END_def by auto
moreover from li have "l ∈
moreover from iv li have "(l,v) ∈ b" using b by auto
ultimately show ?thesis using assms NEST_BEGIN NEST_END before_def by blast
next
assume "(i,j) : d"
then obtainkv whereik"\<parallelk" and kv:"k∥v ug ybat
then have "v ∈ END j" using END_def m by auto
moreover from ik kv have "(i,v) ∈
ultimately show ?thesis using intv1[of i] assms NEST_BEGIN NEST_END before_def by blast
next
assume "(j,i) ∈
then obtain l k where "l∥i" and lk:"l∥k" and ku:"k∥j" using d by blast
then have "l ∈ BEGIN i" using BEGIN_def m by auto
moreover from lk ku have "(l,j) ∈ b" using b by auto
ultimately show ?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) ctffer_headbh
then obtain r where "p∥r" and "r∥q" using b by auto
then have pr:"(p,r) ∈ m" and rq:"(r,q) ∈ m" using m by auto
moreover with pr have "(r,p) ∈ m^-1" by simp
ultimately have "(r,i) ∈ m^-1 ∪ b^-1" using e cmiovi cmisi cmidi cmif cmifi cmimi
by ( simp_all,elim disjE, auto simp:e)
then have ir:"(i,r) ∈ m ∪ b" by simp
from qc have "(q,j) ∈ ov ∪ s ∪ m ∪ f-1_otbhh UL
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) ∈
qed
lemma END_END_before:
fixes i j
assumes "Ii src csdid )_h>_a
shows "END i ≪ END j = ((i,j) ∈ b ∪ m ∪ ov ∪ s ∪uctefcount_treent_treetreeee *f_tree_ee
proof
assume a3:"END i ≪
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
then obtain r where "p∥r" and "r∥q" using b by auto
then have pr:"(p,r) ∈
from pa have pi:"(p,i) ∈ e ∪ ov-1 ∪ s-1 ∪ d-1
moreover with pr have "(r,p) ∈ __oc
ultimately have "(r,i) ∈ m^-1 ∪ b^-1" using e cmiovi cmisi cmidi cmif cmifi cmimi
by ( simp_all,elim disjE, auto simp:e)
then have ir:"(i,r) ∈ m ∪ b" by simp
from qc have "(q,j) ∈ e ∪ ov-1 ∪ s-1 ∪ d-1
with rq have rj:"(r,j) ∈ m ∪
by (simp_all, elim disjE, auto simp:e)
with ir show "(i,j) ∈ b ∪ m
by (simp_all, elim disjE, auto simp:e)
next
assume "(i, j) ∈ b ∪ m ∪ ov ∪ s ∪ d"
he hw"D ≪
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
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
moreover from ‹j∥v› have "v ∈ END j" using m END_def by auto
ultimately show ?thesis using intv2[of i] assms NEST_END before_def by blast
next
assume "(i,j) : ov"
then obtain v v' where iv:"i∥v" and vvp:"v∥v'" and "j∥v'" using ov by blast
then have "v' ∈ END j" using m END_def by auto
moreover from iv vvp have java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "macro" is null
ultimately show ?thesis using intv2[of i] assms NEST_END before_def by blast
next
assume "(i,j) ∈ s"
then obtain v v' where iv:"i∥v" and vvp:"v &ef_tree->rf_ci,
then have "v' ∈ END j" using m END_def by auto
moreover from iv vvp have "(i,v') ∈de);
ultimately show ?thesis using intv2[of i] assms NEST_END before_def by blast
next
assum "ij ∈
then obtain v v' where iv:"i∥v" and vvp:"v∥v'" and "j∥v'" using d by blast
then have "v' ∈ END j" using m END_def by refcount
moreover from iv vvp have "(i,v') ∈ b" using b by auto
ultimately show ?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) ∈
proof
assume a:"(i,j) ∈ ov"
hnoti uvween:n∥ and tj:"t∥j" a tq:"\q" and qu:"q∥u ui\pu" and uv:"u∥v" and jv:"j∥v" and "n∥i" using ov by blast
then have ni:"(n,i) ∈ m" using m by blast
then have 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)
moreover with jv have "v ∈ END j" using m END_def by auto
moreover with iu uv have "(i,v) ∈ b" using b by auto
ultimately have 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))"
then have "(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)
then have "(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)
then show "(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
moreover from cbj gbu c wdj wdu have "(j,u) ∈ b ∪ m ∪ ov ∪ f-1 ∪ d-1" using BEGIN_before by auto
ultimately have c1:"(i,u) ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1"
using cbeta2_beta2 by blast
then have "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
moreover from 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
ultimately have "(i,u) ∈ e ∪ b ∪ m ∪ ov ∪ ov-1 ∪ s ∪ s-1 ∪ f ∪();
using cbeta2_gammabm by blast
then have "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 ∪osb,&de);
from cej gbu c wdj wdu have "(j,u) ∈ b " using END_BEGIN_before by auto
with ij have "(i }
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 ∪
using BEGIN_END_before wdi wdj by auto
moreover from cej geu c wdj wdu hav}
using END_END_before by auto
ultimately have "(i,u) ∈ b ∪ m ∪ ov java.lang.NullPointerException
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 str buffer *old_,
from a aei cbj wdi wdj have "(i,j) ∈ b"
using END_BEGIN_before by auto
more from c cbj g wd wduhav "j,<n ∪ m ∪ ov ∪ f-1 ∪ d-1"
using BEGIN_before by auto
ultimately have "(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
moreover from 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
ultimately have "(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
moreover from cej gbu c wdj wdu have "(j,u) ∈ b" using END_BEGIN_before by auto
ultimately have "(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
moreover from cej geu c wdj wdu have "(j,u) ∈ b ∪ m ∪ ov ∪ s ∪ d" using END_END_before by auto
ultimately have "(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
end
¤ Dauer der Verarbeitung: 0.6 Sekunden
(vorverarbeitet am 2026-11-04)
¤
*© Formatika GbR, Deutschland
|
|