text‹We define 7 binary relations between time intervals.
e, m, b, ov, d, s and f stand for equal, meets, before, overlaps, during, starts and finishes, respectively.›
class arelations = interval + fixes
e::"('a×'a) set"and
m::"('a×'a) set"and
b::"('a×'a) set"and
ov::"('a×'a) set"and
d::"('a×'a) set"and
s::"('a×'a) set"and
f::"('a×'a) set" assumes
e:"(p,q) ∈ e = (p = q)"and
m:"(p,q) ∈ m = p∥q"and
b:"(p,q) ∈ b = (∃t::'a. p∥t ∧ t∥q)"and
ov:"(p,q) ∈ ov = (∃k l u v t::'a. (k∥p ∧ p∥u ∧ u∥v) ∧ (k∥l ∧ l∥q ∧ q∥v) ∧ (l∥t ∧ t∥u))"and
s:"(p,q) ∈ s = (∃k u v::'a. k∥p ∧ p∥u ∧ u∥v ∧ k∥q ∧ q∥v)"and
f:"(p,q) ∈ f = (∃k l u ::'a. k∥l ∧ l∥p ∧ p∥u ∧ k∥q ∧ q∥u)"and
d:"(p,q) ∈ d = (∃k l u v::'a. k∥l ∧ l∥p ∧ p∥u ∧u∥v ∧ k∥q ∧ q∥v)"
(** e compositions **) subsection‹e-composition› text‹Relation e is the identity relation for composition.›
lemma cer: assumes"r ∈ {e,m,b,ov,s,f,d,m^-1,b^-1,ov^-1,s^-1,f^-1,d^-1}" shows"e O r = r" proof -
{ fix x y assume a:"(x,y) ∈ e O r" thenobtain z where"(x,z) ∈ e"and"(z,y) ∈ r"by auto from‹(x,z) ∈ e›have"x = z"using e by auto with‹(z,y)∈ r›have"(x,y) ∈ r"by simp} note c1 = this
{ fix x y assume a:"(x,y) ∈ r" have"(x,x) ∈ e"using e by auto with a have"(x,y) ∈ e O r"by blast} note c2 = this
from c1 c2 show ?thesis by auto qed
lemma cre: assumes"r ∈ {e,m,b,ov,s,f,d,m^-1,b^-1,ov^-1,s^-1,f^-1,d^-1}" shows" r O e = r" proof -
{ fix x y assume a:"(x,y) ∈ r O e" thenobtain z where"(x,z) ∈ r"and"(z,y) ∈ e"by auto from‹(z,y) ∈ e›have"z = y"using e by auto with‹(x,z)∈ r›have"(x,y) ∈ r"by simp} note c1 = this
{ fix x y assume a:"(x,y) ∈ r" have"(y,y) ∈ e"using e by auto with a have"(x,y) ∈ r O e"by blast} note c2 = this
(* composition with single relation *) subsection‹r-composition› text‹We prove compositions of the form $r_1 \circ r_2 \subseteq r$, where $r$ is a basic relation.›
lemma (in arelations) cbb:"b O b ⊆ b" by (r_compose r1:b r2:b r3:b)
lemma (in arelations) cbm:"b O m ⊆ b" by (r_compose r1:b r2:m r3:b)
lemma cbov:"b O ov ⊆ b" apply (auto simp:b ov) using M1 M5exist_var by blast
lemma cbfi:"b O f^-1 ⊆ b" apply (auto simp:b f) by (meson M1 M5exist_var)
lemma cbdi:"b O d^-1 ⊆ b" apply (auto simp: b d) by (meson M1 M5exist_var)
lemma cbs:"b O s ⊆ b" apply (auto simp: b s) by (meson M1 M5exist_var)
lemma cbsi:"b O s^-1 ⊆ b" apply (auto simp: b s) by (meson M1 M5exist_var)
lemma (in arelations) cmb:"m O b ⊆ b" by (r_compose r1:m r2:b r3:b)
lemma cmm:"m O m ⊆ b" by (auto simp: b m)
lemma cmov:"m O ov ⊆ b" apply (auto simp:b m ov) using M1 M5exist_var by blast
lemma cmfi:"m O f^-1 ⊆ b" apply (r_compose r1:m r2:f r3:b) by (meson M1)
lemma cmdi:"m O d^-1 ⊆ b" apply (auto simp add:m d b) using M1 by blast
lemma cms:"m O s ⊆ m" apply (auto simp add:m s) using M1 by auto
lemma cmsi:"m O s^-1 ⊆ m" apply (auto simp add:m s) using M1 by blast
lemma covb:"ov O b ⊆ b" apply (auto simp:ov b) using M1 M5exist_var by blast
lemma covm:"ov O m ⊆ b" apply (auto simp:ov m b) using M1 by blast
lemma covs:"ov O s ⊆ ov" proof fix p::"'a×'a"assume"p ∈ ov O s"thenobtain x y z where p:"p = (x,z)"and xyov:"(x,y)∈ ov"and yzs:"(y,z) ∈ s"by auto from xyov obtain r u v t k where rx:"r∥x"and xu:"x∥u"and uv:"u∥v"and rt:"r∥t"and tk:"t∥k"and ty:"t∥y"and yv:"y∥v"and ku:"k∥u"using ov by blast from yzs obtain l1 l2 where yl1:"y∥l1"and l1l2:"l1∥l2"and zl2:"z∥l2"using s by blast from uv yl1 yv have"u∥l1"using M1 by blast with xu l1l2 obtain ul1 where xul1:"x∥ul1"and ul1l2:"ul1∥l2"using M5exist_var by blast from ku xu xul1 l1l2 have kul1:"k∥ul1"using M1 by blast from ty yzs have"t∥z"using s M1 by blast with rx rt xul1 ul1l2 zl2 tk kul1 have"(x,z) ∈ ov"using ov by blast with p show"p ∈ ov"by simp qed
lemma cfib:"f^-1 O b ⊆ b" apply (auto simp:f b) using M1 by blast
lemma cfim:"f^-1 O m ⊆ m" apply (auto simp:f m) using M1 by auto
lemma cfiov:"f^-1 O ov ⊆ ov" proof fix p::"'a×'a"assume"p ∈ f^-1 O ov"thenobtain x y z where p:"p = (x,z)"and xyfi:"(x,y)∈ f^-1"and yzov:"(y,z) ∈ ov"by auto from xyfi yzov obtain t' r u where tpr:"t'∥r"and ry:"r∥y"and yu:"y∥u"and tpx:"t'∥x"and xu:"x∥u"using f by blast from yzov ry obtain v k t u' where yup:"y∥u'"and upv:"u'∥v"and rk:"r∥k"and kz:"k∥z"and zv:"z∥v"and kt:"k∥t"and tup:"t∥u'" using ov using M1 by blast from yu xu yup have xup:"x∥u'"using M1 by blast from tpr rk kt obtain r' where tprp:"t'∥r'"and rpt:"r'∥t"using M5exist_var by blast from kt rpt kz have rpz:"r'∥z"using M1 by blast from tprp rpz rpt tpx xup zv upv tup have"(x,z) ∈ ov"using ov by blast with p show"p ∈ ov"by simp qed
lemma cfifi:"f^-1 O f^-1 ⊆ f^-1" proof fix x::"'a×'a"assume"x ∈ f^-1 O f^-1"thenobtain p q z where x:"x = (p, q)"and"(p,z) ∈f^-1"and"(z,q) ∈ f^-1"by auto from‹(p,z) ∈ f^-1›obtain k l u where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and pu:"p∥u"and zu:"z∥u"using f by blast from‹(z,q) ∈ f^-1›obtain k' u' l' where kpz:"k'∥z"and kplp:"k'∥l'"and lpq:"l'∥q"and qup:"q∥u'"and zup:"z∥u'"using f by blast from zu zup pu have"p∥u'"using M1 by blast from lz kpz kplp have"l∥l'"using M1 by blast with kl lpq obtain ll where"k∥ll"and"ll∥q"using M5exist_var by blast with kp ‹p∥u'› qup show"x ∈ f^-1"using x f by blast qed
lemma cfidi:"f^-1 O d^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : f^-1 O d^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ f^-1"and"(z,q) ∈ d^-1"by auto thenobtain k l u where kp:"k ∥ p"and kl:"k∥l"and lz:"l∥z"and pu:"p ∥u"and zu:"z∥u"using f by blast obtain k' l' u' v' where kpz:"k' ∥z"and kplp:"k' ∥l'"and lpq:"l' ∥q"and qup:"q ∥u'"and upvp:"u'∥v'"and zvp:"z∥v'"using d ‹(z,q)∈d^-1›by blast from lz kpz kplp have"l∥l'"using M1 by blast with kl lpq obtain ll where"k∥ll"and"ll∥q"using M5exist_var by blast moreoverfrom zu zvp upvp have"u' ∥ u "using M1 by blast ultimatelyshow"x ∈ d^-1"using x kp pu qup d by blast qed
lemma cfis:"f^-1 O s ⊆ ov" proof fix x::"'a×'a"assume"x ∈ f^-1 O s"thenobtain p q z where x:"x = (p,q)"and"(p,z)∈ f^-1"and"(z,q) ∈ s"by auto from‹(p,z)∈ f^-1›obtain k l u where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and pu:"p∥u"and zu:"z∥u"using f by blast from‹(z,q)∈ s›obtain k' u' v' where kpz:"k'∥z"and kpq:"k'∥q"and zup:"z∥u'"and upvp:"u'∥v'"and qvp:"q∥v'"using s M1 by blast from pu zu zup have pup:"p∥u'"using M1 by blast moreoverfrom lz kpz kpq have lq:"l∥q"using M1 by blast ultimatelyshow"x ∈ ov"using x lz zup kp kl upvp upvp ov qvp by blast qed
lemma cfisi:"f^-1 O s^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x ∈ f^-1 O s^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ f^-1"and"(z,q) ∈ s^-1"by auto thenobtain k l u where kp:"k ∥ p"and kl:"k∥l"and lz:"l∥z"and pu:"p ∥u"and zu:"z∥u"using f by blast obtain k' u' v' where kpz:"k' ∥z"and kpq:"k' ∥q"and qup:"q ∥u'"and upvp:"u'∥v'"and zvp:"z∥v'"using s ‹(z,q): s^-1›by blast from zu zvp upvp have"u'∥u"using M1 by blast moreoverfrom lz kpz kpq have"l ∥q "using M1 by blast ultimatelyshow"x ∈ d^-1"using x d kl kp qup pu by blast qed
lemma cdifi:"d^-1 O f^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : d^-1 O f^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z,q) ∈ f^-1"by auto thenobtain k l u v where kp:"k ∥ p"and kl:"k∥l"and lz:"l∥z"and zu:"z ∥u"and uv:"u∥v"and pv:"p∥v"using d by blast obtain k' l' u' where kpz:"k' ∥z"and kplp:"k' ∥l'"and lpq:"l' ∥q"and qup:"q ∥u'"and zup:"z∥u'"using f ‹(z,q): f^-1›by blast from lz kpz kplp have"l∥l'"using M1 by blast with kl lpq obtain ll where"k∥ll"and"ll∥q"using M5exist_var by blast moreoverfrom zu qup zup have"q ∥ u "using M1 by blast ultimatelyshow"x ∈ d^-1"using x d kp uv pv by blast qed
lemma cdidi:"d^-1 O d^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : d^-1 O d^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z,q) ∈ d^-1"by auto thenobtain k l u v where kp:"k ∥ p"and kl:"k∥l"and lz:"l∥z"and zu:"z ∥u"and uv:"u∥v"and pv:"p∥v"using d by blast obtain k' l' u' v' where kpz:"k' ∥z"and kplp:"k' ∥l'"and lpq:"l' ∥q"and qup:"q ∥u'"and upvp:"u' ∥v'"and zvp:"z ∥v'"using d ‹(z,q): d^-1›by blast from lz kpz kplp have"l∥l'"using M1 by blast with kl lpq obtain ll where"k∥ll"and"ll∥q"using M5exist_var by blast moreoverfrom zvp zu upvp have"u' ∥ u "using M1 by blast moreoverwith qup uv obtain uu where"q∥uu"and"uu∥v"using M5exist_var by blast ultimatelyshow"x ∈ d^-1"using x d kp pv by blast qed
lemma cdisi:"d^-1 O s^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : d^-1 O s^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z,q) ∈ s^-1"by auto thenobtain k l u v where kp:"k ∥p"and kl:"k∥l"and lz:"l∥z"and zu:"z∥u"and uv:"u∥v"and pv:"p∥v"using d by blast obtain k' u' v' where kpz:"k' ∥z"and kpq:"k' ∥q"and qup:"q ∥u'"and upvp:"u' ∥v'"and zvp:"z ∥v'"using s ‹(z,q): s^-1›by blast from upvp zvp zu have"u'∥u"using M1 by blast with qup uv obtain uu where"q∥uu"and"uu∥v"using M5exist_var by blast moreoverfrom kpz lz kpq have"l ∥q "using M1 by blast ultimatelyshow"x ∈ d^-1"using x d kp kl pv by blast qed
lemma csb:"s O b ⊆ b" apply (auto simp:s b) using M1 M5exist_var by blast
lemma csm:"s O m ⊆ b" apply (auto simp:s m b) using M1 by blast
lemma css:"s O s ⊆ s" proof fix x::"'a×'a"assume"x ∈ s O s"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s"and"(z,q) ∈ s"by auto from‹(p,z) ∈ s›obtain k u v where kp:"k∥p"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using s by blast from‹(z,q) ∈ s›obtain k' u' v' where kpq:"k'∥q"and kpz:"k'∥z"and zup:"z∥u'"and upvp:"u'∥v'"and qvp:"q∥v'"using s by blast from kp kpz kz have"k'∥p"using M1 by blast moreoverfrom uv zup zv have"u∥u'"using M1 by blast moreoverwith pu upvp obtain uu where"p∥uu"and"uu∥v'"using M5exist_var by blast ultimatelyshow"x ∈ s"using x s kpq qvp by blast qed
lemma csifi:"s^-1 O f^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : s^-1 O f^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s^-1"and"(z,q) ∈ f^-1"by auto thenobtain k u v where kp:"k ∥ p"and kz:"k∥z"and zu:"z ∥u"and uv:"u∥v"and pv:"p∥v"using s by blast obtain k' l' u' where kpz:"k' ∥z"and kplp:"k' ∥l'"and lpq:"l' ∥q"and zup:"z∥u'"and qup:"q∥u'"using f ‹(z,q): f^-1›by blast from kz kpz kplp have"k∥l'"using M1 by blast moreoverfrom qup zup zu have"q ∥ u "using M1 by blast ultimatelyshow"x ∈ d^-1"using x d kp lpq pv uv by blast qed
lemma csidi:"s^-1 O d^-1 ⊆ d^-1" proof fix x::"'a×'a"assume"x : s^-1 O d^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s^-1"and"(z,q) ∈ d^-1"by auto thenobtain k u v where kp:"k ∥ p"and kz:"k∥z"and zu:"z ∥u"and uv:"u∥v"and pv:"p∥v"using s by blast obtain k' l' u' v' where kpz:"k' ∥z"and kplp:"k' ∥l'"and lpq:"l'∥q"and qup:"q ∥u'"and upvp:"u' ∥v'"and zvp:"z∥v'"using d ‹(z,q): d^-1›by blast from zvp upvp zu have"u'∥u"using M1 by blast with qup uv obtain uu where"q∥uu"and"uu∥v"using M5exist_var by blast moreoverfrom kz kpz kplp have"k ∥l' "using M1 by blast ultimatelyshow"x ∈ d^-1"using x d kp lpq pv by blast qed
lemma cdb:"d O b ⊆ b" apply (auto simp:d b) using M1 M5exist_var by blast
lemma cdm:"d O m ⊆ b" apply (auto simp:d m b) using M1 by blast
lemma cfb:"f O b ⊆ b" apply (auto simp:f b) using M1 by blast
lemma cfm:"f O m ⊆ m" proof fix x::"'a×'a"assume"x ∈ f O m"thenobtain p q z where x:"x = (p,q)"and1:"(p,z) ∈ f"and2:"(z,q) ∈ m"by auto from1obtain u where pu:"p∥u"and zu:"z∥u"using f by auto with2have"(p,q) ∈ m"using M1 m by blast thus"x∈ m"using x by auto qed
(* ========= $\alpah_1$ compositions ============ *) subsection‹$\alpha$-composition› text‹We prove compositions of the form $r_1 \circ r_2 \subseteq s \cup ov \cup d$.›
lemma (in arelations) cmd:"m O d ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume a:"x ∈ m O d"thenobtain p q z where x:"x =(p,q)"and1:"(p,z) ∈ m"and2:"(z,q) ∈ d"by auto thenobtain k l u v where pz:"p∥z"and kq:"k∥q"and kl:"k∥l"and lz:"l∥z"and zu:"z∥u"and uv:"u∥v"and qv:"q∥v"using m d by blast obtain k' where kpp:"k'∥p"using M3 meets_wd pz by blast from pz zu uv obtain zu where pzu:"p∥zu"and zuv:"zu∥v"using M5exist_var by blast from kpp kq have"k'∥q ⊕ ((∃t. k'∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C)∨(¬?A∧?B∧¬?C)∨(¬?A∧¬?B∧?C)"usinglocal.meets_atrans xor_distr_L[of ?A ?B ?C] by blast thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp thenhave"(p,q) ∈ s"using s qv kpp pzu zuv by blast thus ?thesis using x by simp } next
{assume"(¬?A∧?B∧¬?C)"thenhave"?B"by simp thenobtain t where kpt:"k'∥t"and tq:"t∥q"by auto moreoverfrom kq kl tq have"t∥l"using M1 by blast moreoverfrom lz pz pzu have"l∥zu"using M1 by blast ultimatelyhave"(p,q) ∈ ov"using ov kpp qv pzu zuv by blast thus ?thesis using x by simp} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp thenobtain t where kt:"k∥t"and tp:"t∥p"by auto with kq pzu zuv qv have"(p,q)∈d"using d by blast thus ?thesis using x by simp} qed qed
lemma (in arelations) cmf:"m O f ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume a:"x ∈ m O f"thenobtain p q z where x:"x =(p,q)"and1:"(p,z) ∈ m"and2:"(z,q) ∈ f"by auto thenobtain k l u where pz:"p∥z"and kq:"k∥q"and kl:"k∥l"and lz:"l∥z"and zu:"z∥u"and qu:"q∥u"using m f by blast obtain k' where kpp:"k'∥p"using M3 meets_wd pz by blast from kpp kq have"k'∥q ⊕ ((∃t. k'∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C)∨(¬?A∧?B∧¬?C)∨(¬?A∧¬?B∧?C)"usinglocal.meets_atrans xor_distr_L[of ?A ?B ?C] by blast thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp thenhave"(p,q) ∈ s"using s qu kpp pz zu by blast thus ?thesis using x by simp } next
{assume"(¬?A∧?B∧¬?C)"thenhave"?B"by simp thenobtain t where kpt:"k'∥t"and tq:"t∥q"by auto moreoverfrom kq kl tq have"t∥l"using M1 by blast moreoverfrom lz pz pz have"l∥z"using M1 by blast ultimatelyhave"(p,q) ∈ ov"using ov kpp qu pz zu by blast thus ?thesis using x by simp} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp thenobtain t where kt:"k∥t"and tp:"t∥p"by auto with kq pz zu qu have"(p,q)∈d"using d by blast thus ?thesis using x by simp} qed qed
lemma cmovi:"m O ov^-1 ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume a:"x ∈ m O ov^-1"thenobtain p q z where x:"x =(p,q)"and1:"(p,z) ∈m"and2:"(z,q) ∈ ov^-1"by auto thenobtain k l c u v where pz:"p∥z"and kq:"k∥q"and kl:"k∥l"and lz:"l∥z"and qu:"q∥u"and uv:"u∥v"and zv:"z∥v"and lc:"l∥c"and cu:"c∥u"using m ov by blast obtain k' where kpp:"k'∥p"using M3 meets_wd pz by blast from lz lc pz have pc:"p∥c"using M1 by auto from kpp kq have"k'∥q ⊕ ((∃t. k'∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C)∨(¬?A∧?B∧¬?C)∨(¬?A∧¬?B∧?C)"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp thenhave"(p,q) ∈ s"using s kpp qu cu pc by blast thus ?thesis using x by simp } next
{assume"(¬?A∧?B∧¬?C)"thenhave"?B"by simp thenobtain t where kpt:"k'∥t"and tq:"t∥q"by auto moreoverfrom kq kl tq have"t∥l"using M1 by auto ultimatelyhave"(p,q) ∈ ov"using ov kpp qu cu lc pc by blast thus ?thesis using x by simp} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp thenobtain t where kt:"k∥t"and tp:"t∥p"by auto thenhave"(p,q)∈d"using d kq cu qu pc by blast thus ?thesis using x by simp} qed qed
lemma covd:"ov O d ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume"x ∈ ov O d"thenobtain p q z where x:"x=(p,q)"and"(p,z) ∈ ov"and"(z,q) ∈ d"by auto from‹(p,z) ∈ ov›obtain k u v l c where kp:"k∥p"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"and lc:"l∥c"and cu:"c∥u"and kl:"k∥l"and lz:"l∥z"and cu:"c∥u"using ov by blast from‹(z,q) ∈ d›obtain k' l' u' v' where kpq:"k'∥q"and kplp:"k'∥l'"and lpz:"l'∥z"and qvp:"q∥v'"and zup:"z∥u'"and upvp:"u'∥v'"using d by blast from uv zv zup have"u∥u'"using M1 by auto from pu upvp obtain uu where puu:"p∥uu"and uuvp:"uu∥v'"using‹u∥u'›using M5exist_var by blast from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,q) ∈ s"using s kp qvp puu uuvp by blast thus ?thesis using x by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from cu pu puu have"c∥uu"using M1 by auto moreoverfrom kpq tq kplp have"t∥l'"using M1 by auto moreoverfrom lpz lz lc have lpc:"l'∥c"using M1 by auto ultimatelyobtain lc where"t∥lc"and"lc∥uu"using M5exist_var by blast thenhave"(p,q) ∈ ov"using ov kp kt tq puu uuvp qvp by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k'∥t"and"t∥p"by auto with puu uuvp qvp kpq have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma covf:"ov O f ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume"x ∈ ov O f"thenobtain p q z where x:"x=(p,q)"and"(p,z) ∈ ov"and"(z,q) ∈ f"by auto from‹(p,z) ∈ ov›obtain k u v l c where kp:"k∥p"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"and lc:"l∥c"and cu:"c∥u"and kl:"k∥l"and lz:"l∥z"and cu:"c∥u"using ov by blast from‹(z,q) ∈ f›obtain k' l' u' where kpq:"k'∥q"and kplp:"k'∥l'"and lpz:"l'∥z"and qup:"q∥u'"and zup:"z∥u'"using f by blast from uv zv zup have uu:"u∥u'"using M1 by auto from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,q) ∈ s"using s kp qup uu pu by blast thus ?thesis using x by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto moreoverfrom kpq tq kplp have"t∥l'"using M1 by auto moreoverfrom lpz lz lc have lpc:"l'∥c"using M1 by auto ultimatelyobtain lc where"t∥lc"and"lc∥u"using cu M5exist_var by blast thenhave"(p,q) ∈ ov"using ov kp kt tq pu uu qup by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k'∥t"and"t∥p"by auto with pu uu qup kpq have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cfid:"f^-1 O d ⊆ s ∪ ov ∪ d" proof fix x::"'a×'a"assume"x ∈ f^-1 O d"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ f^-1"and"(z,q)∈ d"by auto from‹(p,z) ∈ f^-1›obtain k l u where"k∥l"and"l∥z"and kp:"k∥p"and pu:"p∥u"and zu:"z∥u"using f by blast from‹(z,q) ∈ d›obtain k' l' u' v where kplp:"k'∥l'"and kpq:"k'∥q"and lpz:"l'∥z"and zup:"z∥u'"and upv:"u'∥v"and qv:"q∥v"using d by blast from pu zu zup have pup:"p∥u'"using M1 by blast from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ s ∪ ov ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with pup upv kp qv have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from tq kpq kplp have"t∥l'"using M1 by blast with lpz zup obtain lpz where"t∥lpz"and"lpz∥u'"using M5exist_var by blast with kp pup upv kt tq qv have"(p,q)∈ov"using ov by blast thus ?thesis using x by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k'∥t"and"t∥p"by auto with pup upv kpq qv have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cfov:"f O ov ⊆ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ f O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ f"and"(z,q)∈ ov"by auto from‹(p,z) ∈ f›obtain k l u where"k∥l"and kz:"k∥z"and lp:"l∥p"and pu:"p∥u"and zu:"z∥u"using f by blast from‹(z,q) ∈ ov›obtain k' l' c u' v where"k'∥l'"and kpz:"k'∥z"and lpq:"l'∥ q"and zup:"z∥u'"and upv:"u'∥v"and qv:"q∥v"and lpc:"l'∥c"and cup:"c∥u'"using ov by blast from pu zu zup have pup:"p∥u'"using M1 by blast from lp lpq have"l∥q ⊕ ((∃t. l∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with lp pup upv qv have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where lt:"l∥t"and tq:"t∥q"by auto from tq lpq lpc have"t∥c"using M1 by blast with lp lt tq pup upv qv cup have"(p,q)∈ov"using ov by blast thus ?thesis using x by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"l'∥t"and"t∥p"by auto with lpq pup upv qv have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
(* ========= $\alpha_2$ composition ========== *) text‹We prove compositions of the form $r_1 \circ r_2 \subseteq ov \cup f^{-1} \cup d^{-1}$.›
lemma covsi:"ov O s^-1 ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ ov O s^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov"and"(z,q) ∈ s^-1"by auto from‹(p,z) ∈ ov›obtain k l c u where kp:"k∥p"and pu:"p∥u"and kl:"k∥l"and lz:"l∥z"and lc:"l∥c"and cu:"c∥u"using ov by blast from‹(z,q) ∈ s^-1›obtain k' u' v' where kpz:"k'∥z"and kpq:"k'∥q"and kpz:"k'∥z"and zup:"z∥u'"and qvp:"q∥v'"using s by blast from lz kpz kpq have lq:"l∥q"using M1 by blast from pu qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp kp kl lq have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where ptp:"p∥t"and"t∥v'"by auto moreoverwith pu cu have"c∥t"using M1 by blast ultimatelyhave"(p,q)∈ ov"using kp kl lc cu lq qvp ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where qt:"q∥t"and"t∥u"by auto with kp kl lq pu have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma cdim:"d^-1 O m ⊆ ov ∪ d^-1 ∪ f^-1" proof fix x::"'a×'a"assume"x ∈ d^-1 O m"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z,q) ∈ m"by auto from‹(p,z) ∈ d^-1›obtain k l u v where kp:"k∥p"and pv:"p∥v"and kl:"k∥l"and lz:"l∥z"and zu:"z∥u"and uv:"u∥v"using d by blast from‹(z,q) ∈ m›have zq:"z∥q"using m by blast obtain v' where qvp:"q∥v'"using M3 meets_wd zq by blast from kl lz zq obtain lz where klz:"k∥lz"and lzq:"lz∥q"using M5exist_var by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ d^-1 ∪ f^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp kp klz lzq‹?A›have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from zq lzq zu have"lz∥u"using M1 by auto moreoverfrom pt pv uv have"u∥t"using M1 by auto ultimatelyhave"(p,q)∈ ov"using kp klz lzq pt tvp qvp ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where qt:"q∥t"and"t∥v"by auto with kp klz lzq pv have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma cdiov:"d^-1 O ov ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ d^-1 O ov"thenobtain p q r where x:"x = (p,r)"and"(p,q) ∈ d^-1"and"(q,r) ∈ ov"by auto from‹(p,q) ∈ d^-1›obtain u v k l where kp:"k∥p"and pv:"p∥v"and kl:"k∥l"and lq:"l∥q"and qu:"q∥u"and uv:"u∥v"using d by blast from‹(q,r) ∈ ov›obtain k' l' t u' v' where lpr:"l'∥r"and kpq:"k'∥q"and kplp:"k'∥l'"and qup:"q∥u'"and"u'∥v'"and rvp:"r∥v'"and lpt:"l'∥t"and tup:"t∥u'"using ov by blast from lq kplp kpq have"l∥l'"using M1 by blast with kl lpr obtain ll where kll:"k∥ll"and llr:"ll∥r"using M5exist_var by blast from pv rvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. r∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with rvp llr kp kll have"(p,r) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpvp:"t'∥v'"by auto moreoverfrom lpt lpr llr have llt:"ll∥t"using M1 by blast moreoverfrom ptp uv pv have utp:"u∥t'"using M1 by blast moreoverfrom qu tup qup have"t∥u"using M1 by blast moreoverwith utp llt obtain tu where"ll∥tu"and"tu∥t'"using M5exist_var by blast with kp ptp tpvp kll llr rvp have"(p,r)∈ ov"using ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where rtp:"r∥t'"and"t'∥v"by auto with kll llr kp pv have"(p,r) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma cdis:"d^-1 O s ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ d^-1 O s"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z,q) ∈ s"by auto from‹(p,z)∈d^-1›obtain k l u v where kl:"k∥l"and lz:"l∥z"and kp:"k∥p"and zu:"z∥u"and uv:"u∥v"and pv:"p∥v"using d by blast from‹(z,q) ∈ s›obtain l' v' where lpz:"l'∥z"and lpq:"l'∥q"and qvp:"q∥v'"using s by blast from lz lpz lpq have lq:"l∥q"using M1 by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kl lq qvp kp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt pv uv have"u∥t"using M1 by blast with lz zu obtain zu where"l∥zu"and"zu∥t"using M5exist_var by blast with kp pt tvp kl lq qvp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with kl lq kp pv have"(p,q)∈d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma csim:"s^-1 O m ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ s^-1 O m"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s^-1"and"(z,q) ∈ m"by auto from‹(p,z)∈s^-1›obtain k u v where kp:"k∥p"and kz:"k∥z"and zu:"z∥u"and uv:"u∥v"and pv:"p∥v"using s by blast from‹(z,q) ∈ m›have zq:"z∥q"using m by auto obtain v' where qvp:"q∥v'"using M3 meets_wd zq by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kp kz zq qvp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt pv uv have"u∥t"using M1 by blast with kp pt tvp kz zq qvp zu have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with kp kz zq pv have"(p,q)∈d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma csiov:"s^-1 O ov ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ s^-1 O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s^-1"and"(z,q) ∈ ov"by auto from‹(p,z)∈s^-1›obtain k u v where kp:"k∥p"and kz:"k∥z"and zu:"z∥u"and uv:"u∥v"and pv:"p∥v"using s by blast from‹(z,q) ∈ ov›obtain k' l' u' v' c where kpz:"k'∥z"and zup:"z∥u'"and upvp:"u'∥v'"and kplp:"k'∥l'"and lpq:"l'∥q"and qvp:"q∥v'"and lpc:"l'∥c"and cup:"c∥u'"using ov by blast from kz kpz kplp have klp:"k∥l'"using M1 by auto from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kp kplp lpq qvp klp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt pv uv have"u∥t"using M1 by blast moreoverfrom cup zup zu have cu:"c∥u"using M1 by auto ultimatelyobtain cu where"l'∥cu"and"cu∥t"using lpc M5exist_var by blast with kp pt tvp klp lpq qvp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with kp klp lpq pv have"(p,q)∈d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma covim:"ov^-1 O m ⊆ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ ov^-1 O m"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov^-1"and"(z,q) ∈ m"by auto from‹(p,z) ∈ ov^-1›obtain k l c u v where kz:"k∥z"and zu:"z∥u"and kl:"k∥l"and lp:"l∥p"andlc:"l∥c"and cu:"c∥u"and pv:"p∥v"and uv:"u∥v"using ov by blast from‹(z,q) ∈ m›have zq:"z∥q"using m by auto obtain v' where qvp:"q∥v'"using M3 meets_wd zq by blast from zu zq cu have cq:"c∥q"using M1 by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with lp lc cq qvp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where ptp:"p∥t"and"t∥v'"by auto moreoverwith pv uv have"u∥t"using M1 by blast ultimatelyhave"(p,q)∈ ov"using lp lc cq qvp cu ov by blast thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where qt:"q∥t"and"t∥v"by auto with lp lc cq pv have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
(* =========$\alpha_3$ compositions========== *) text‹We prove compositions of the form $r_1 \circ r_2 \subseteq b \cup m \cup ov$.›
lemma covov:"ov O ov ⊆ b ∪ m ∪ ov" proof fix x::"'a×'a"assume"x ∈ ov O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov"and"(z,q)∈ ov"by auto from‹(p,z) ∈ ov›obtain k u l t v where kp:"k∥p"and pu:"p∥u"and kl:"k∥l"and lz:"l∥z"and"l∥t"and"t∥u"and uv:"u∥v"and zv:"z∥v"using ov by blast from‹(z,q) ∈ ov›obtain k' l' y u' v' where kplp:"k'∥l'"and kpz:"k'∥z"and lpq:"l'∥q"and lpy:"l'∥y"and"y∥u'"and zup:"z∥u'"and upvp:"u'∥v'"and qvp:"q∥v'"using ov by blast from lz kplp kpz have llp:"l∥l'"using M1 by blast from uv zv zup have"u∥u'"using M1 by blast with pu upvp obtain uu where puu:"p∥uu"and uuv:"uu∥v'"using M5exist_var by blast from puu lpq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. l'∥t' ∧ t'∥uu))" (is"?A ⊕ (?B ⊕?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,q) ∈ m"using m by auto thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenhave"(p,q) ∈ b"using b by auto thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where lptp:"l'∥t'"and"t'∥uu"by auto from kl llp lpq obtain ll where kll:"k∥ll"and llq:"ll∥q"using M5exist_var by blast with lpq lptp have"ll∥t'"using M1 by blast with kp puu uuv kll llq qvp ‹t'∥uu›have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed qed
lemma covfi:"ov O f^-1 ⊆ b ∪ m ∪ ov" proof fix x::"'a×'a"assume"x ∈ ov O f^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov"and"(z,q)∈ f^-1"by auto from‹(p,z) ∈ ov›obtain k u l c v where kp:"k∥p"and pu:"p∥u"and kl:"k∥l"and lz:"l∥z"and"l∥c"and"c∥u"and uv:"u∥v"and zv:"z∥v"using ov by blast from‹(z,q) ∈ f^-1›obtain k' l' v' where kplp:"k'∥l'"and kpz:"k'∥z"and lpq:"l'∥q"and qvp:"q∥v'"and zvp:"z∥v'"using f by blast from lz kplp kpz have llp:"l∥l'"using M1 by blast from zv qvp zvp have qv:"q∥v"using M1 by blast from pu lpq have"p∥q ⊕ ((∃t. p∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,q) ∈ m"using m by auto thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenhave"(p,q) ∈ b"using b by auto thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where lptp:"l'∥t"and"t∥u"by auto from kl llp lpq obtain ll where kll:"k∥ll"and llr:"ll∥q"using M5exist_var by blast with lpq lptp have"ll∥t"using M1 by blast with kp pu uv kll llr qv ‹t∥u›have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed qed
lemma csov:"s O ov ⊆ b ∪ m ∪ ov" proof fix x::"'a×'a"assume"x ∈ s O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ s"and"(z,q)∈ ov"by auto from‹(p,z) ∈ s›obtain k u v where kp:"k∥p"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using s by blast from‹(z,q) ∈ ov›obtain k' l' u' v' where kpz:"k'∥z"and kplp:"k'∥l'"and lpq:"l'∥q"and zup:"z∥u'"and qvp:"q∥v'"and upvp:"u'∥v'"using ov by blast from kz kpz kplp have klp:"k∥l'"using M1 by blast from uv zv zup have uup:"u∥u'"using M1 by blast with pu upvp obtain uu where puu:"p∥uu"and uuvp:"uu∥v'"using M5exist_var by blast from pu lpq have"p∥q ⊕ ((∃t. p∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,q) ∈ m"using m by auto thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenhave"(p,q) ∈ b"using b by auto thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where lpt:"l'∥t"and"t∥u"by auto with pu puu have"t∥uu"using M1 by blast with lpt kp puu uuvp klp lpq qvp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed qed
lemma csfi:"s O f^-1 ⊆ b ∪ m ∪ ov" proof fix x::"'a×'a"assume"x ∈ s O f^-1"thenobtain p q r where x:"x = (p,r)"and"(p,q) ∈ s"and"(q,r)∈ f^-1"by auto from‹(p,q) ∈ s›obtain k u v where kp:"k∥p"and kq:"k∥q"and pu:"p∥u"and uv:"u∥v"and qv:"q∥v"using s by blast from‹(q,r) ∈ f^-1›obtain k' l v' where kpq:"k'∥q"and kpl:"k'∥l"and lr:"l∥r"and rvp:"r∥v'"and qvp:"q∥v'"using f by blast from kpq kpl kq have kl:"k∥l"using M1 by blast from qvp qv uv have uvp:"u∥v'"using M1 by blast from pu lr have"p∥r ⊕ ((∃t'. p∥t' ∧ t'∥r) ⊕ (∃t'. l∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thenhave"(p,r) ∈ m"using m by auto thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenhave"(p,r) ∈ b"using b by auto thus ?thesis using x by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where ltp:"l∥t'"and"t'∥u"by auto with kp pu uvp kl lr rvp have"(p,r) ∈ ov"using ov by blast thus ?thesis using x by auto} qed qed
(* =========$\alpha_4$ compositions========== *) text‹We prove compositions of the form $r_1 \circ r_2 \subseteq f \cup f^{-1} \cup e$.›
lemma cmmi:"m O m^-1 ⊆ f ∪ f^-1 ∪ e" proof fix x::"'a×'a"assume a:"x ∈ m O m^-1"thenobtain p q z where x:"x =(p,q)"and1:"(p,z) ∈ m"and2:"(z,q) ∈ m^-1"by auto thenhave pz:"p∥z"and qz:"q∥z"using m by auto obtain k k' where kp:"k∥p"and kpq:"k'∥q"using M3 meets_wd qz pz by blast from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C)∨(¬?A∧?B∧¬?C)∨(¬?A∧¬?B∧?C)"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈f ∪ f^-1 ∪ e" proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp thenhave"p = q"using M4 kp pz qz by blast thenhave"(p,q) ∈ e"using e by auto thus ?thesis using x by simp } next
{assume"(¬?A∧?B∧¬?C)"thenhave"?B"by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto thenhave"(p,q) ∈ f^-1"using f qz pz kp by blast thus ?thesis using x by simp} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp thenobtain t where kt:"k'∥t"and tp:"t∥p"by auto with kpq pz qz have"(p,q)∈f"using f by blast thus ?thesis using x by simp} qed qed
lemma cfif:"f^-1 O f ⊆ e ∪ f^-1 ∪ f" proof fix x::"'a×'a"assume a:"x ∈ f^-1 O f"thenobtain p q z where x:"x =(p,q)"and1:"(p,z) ∈ f^-1"and2:"(z,q) ∈ f"by auto from1obtain k l u where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and zu:"z∥u"and pu:"p∥u"using f by blast from2obtain k' l' u' where kpq:"k'∥q"and kplp:"k'∥l'"and lpz:"l'∥z"and zup:"z∥u'"and qup:"q∥u'"using f by blast from zu zup qup have qu:"q∥u"using M1 by auto from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C)∨(¬?A∧?B∧¬?C)∨(¬?A∧¬?B∧?C)"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ f^-1 ∪ f" proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp thenhave"p = q"using M4 kp pu qu by blast thenhave"(p,q) ∈ e"using e by auto thus ?thesis using x by simp } next
{assume"(¬?A∧?B∧¬?C)"thenhave"?B"by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto thenhave"(p,q) ∈ f^-1"using f qu pu kp by blast thus ?thesis using x by simp} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp thenobtain t where kt:"k'∥t"and tp:"t∥p"by auto with kpq pu qu have"(p,q)∈f"using f by blast thus ?thesis using x by simp} qed qed
lemma cffi:"f O f^-1 ⊆ e ∪ f ∪ f^-1" proof fix x::"'a×'a"assume"x ∈ f O f^-1"thenobtain p q r where x:"x = (p,r)"and"(p,q)∈f"and"(q,r) ∈f^-1"by auto from‹(p,q)∈f›‹(q,r) ∈ f^-1›obtain k k' where kp:"k∥p"and kpr:"k'∥r"using f by blast from‹(p,q)∈f›‹(q,r) ∈ f^-1›obtain u where pu:"p∥u"and"q∥u"and ru:"r∥u"using f M1 by blast from kp kpr have"k∥r ⊕ ((∃t. k∥t ∧ t∥r) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ f ∪ f^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with pu ru kp have"p = r"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tr:"t∥r"by auto with ru kp pu show ?thesis using x f by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where rtp:"k'∥t"and"t∥p"by auto with kpr ru pu show ?thesis using x f by blast} qed qed
(* =========$\alpha_5$ composition========== *) text‹We prove compositions of the form $r_1 \circ r_2 \subseteq e \cup s \cup s^{-1}$.›
lemma cssi:"s O s^-1 ⊆ e ∪ s ∪ s^-1" proof fix x::"'a×'a"assume"x ∈ s O s^-1"thenobtain p q r where x:"x = (p,r)"and"(p,q)∈s"and"(q,r) ∈s^-1"by auto from‹(p,q)∈s›‹(q,r) ∈ s^-1›obtain k where kp:"k∥p"and kr:"k∥r"and kq:"k∥q"using s M1 by blast from‹(p,q)∈s›‹(q,r) ∈ s^-1›obtain u u' where pu:"p∥u"and rup:"r∥u'"using s by blast thenhave"p∥u' ⊕ ((∃t. p∥t ∧ t∥u') ⊕ (∃t. r∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ s ∪ s^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with rup kp kr have"p = r"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"p∥t"and tr:"t∥u'"by auto with rup kp kr show ?thesis using x s by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where rtp:"r∥t"and"t∥u"by auto with pu kp kr show ?thesis using x s by blast} qed qed
lemma csis:"s^-1 O s ⊆ e ∪ s ∪ s^-1" proof fix x::"'a×'a"assume"x ∈ s^-1 O s"thenobtain p q r where x:"x = (p,r)"and"(p,q)∈s^-1"and"(q,r) ∈s"by auto from‹(p,q)∈s^-1›‹(q,r) ∈ s›obtain k where kp:"k∥p"and kr:"k∥r"and kq:"k∥q"using s M1 by blast from‹(p,q)∈s^-1›‹(q,r) ∈ s›obtain u u' where pu:"p∥u"and rup:"r∥u'"using s by blast thenhave"p∥u' ⊕ ((∃t. p∥t ∧ t∥u') ⊕ (∃t. r∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ s ∪ s^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with rup kp kr have"p = r"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"p∥t"and tr:"t∥u'"by auto with rup kp kr show ?thesis using x s by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where rtp:"r∥t"and"t∥u"by auto with pu kp kr show ?thesis using x s by blast} qed qed
lemma cmim:"m^-1 O m ⊆ s ∪ s^-1 ∪ e" proof fix x::"'a×'a"assume"x ∈ m^-1 O m"thenobtain p q r where x:"x = (p,r)"and"(p,q)∈m^-1"and"(q,r) ∈m"by auto from‹(p,q)∈m^-1›‹(q,r) ∈ m›have qp:"q∥p"and qr:"q∥r"using m by auto obtain u u' where pu:"p∥u"and rup:"r∥u'"using M3 meets_wd qp qr by fastforce thenhave"p∥u' ⊕ ((∃t. p∥t ∧ t∥u') ⊕ (∃t. r∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ s ∪ s^-1 ∪ e" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with rup qp qr have"p = r"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"p∥t"and tr:"t∥u'"by auto with rup qp qr show ?thesis using x s by blast} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where rtp:"r∥t"and"t∥u"by auto with pu qp qr show ?thesis using x s by blast} qed qed
(* =========$\beta_1$ composition========== *) subsection‹$\beta$-composition› text‹We prove compositions of the form $r_1 \circ r_2 \subseteq b \cup m \cup ov\cup s \cup d$.›
lemma cbd:"b O d ⊆ b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ b O d"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ b"and"(z,q) ∈ d"by auto from‹(p,z) ∈ b›obtain c where pc:"p∥c"and cz:"c∥z"using b by auto obtain a where ap:"a∥p"using M3 meets_wd pc by blast from‹(z,q) ∈ d›obtain k l u v where"k∥l"and"l∥z"and kq:"k∥q"and zu:"z∥u"and uv:"u∥v"andqv:"q∥v"using d by blast from pc cz zu obtain cz where pcz:"p∥cz"and czu:"cz∥u"using M5exist_var by blast with uv obtain czu where pczu:"p∥czu"and czuv:"czu∥v"using M5exist_var by blast from ap kq have"a∥q ⊕ ((∃t. a∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") usingM2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with ap pczu czuv uv qv have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where at:"a∥t"and tq:"t∥q"by auto from pc tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where"t∥t'"and"t'∥c"by auto with pc pczu have"t'∥czu"using M1 by auto with at tq ap pczu czuv qv ‹t∥t'›have"(p,q)∈ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k∥t"and"t∥p"by auto with kq pczu czuv uv qv have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cbf:"b O f ⊆ b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ b O f"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ b"and"(z,q) ∈ f"by auto from‹(p,z) ∈ b›obtain c where pc:"p∥c"and cz:"c∥z"using b by auto obtain a where ap:"a∥p"using M3 meets_wd pc by blast from‹(z,q) ∈ f›obtain k l u where"k∥l"and"l∥z"and kq:"k∥q"and zu:"z∥u"and qu:"q∥u"using f by blast from pc cz zu obtain cz where pcz:"p∥cz"and czu:"cz∥u"using M5exist_var by blast from ap kq have"a∥q ⊕ ((∃t. a∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") usingM2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with ap pcz czu qu have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where at:"a∥t"and tq:"t∥q"by auto from pc tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where"t∥t'"and"t'∥c"by auto with pc pcz have"t'∥cz"using M1 by auto with at tq ap pcz czu qu ‹t∥t'›have"(p,q)∈ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k∥t"and"t∥p"by auto with kq pcz czu qu have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cbovi:"b O ov^-1 ⊆ b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ b O ov^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ b"and"(z,q) ∈ ov^-1"by auto from‹(p,z) ∈ b›obtain c where pc:"p∥c"and cz:"c∥z"using b by auto obtain a where ap:"a∥p"using M3 meets_wd pc by blast from‹(z,q) ∈ ov^-1›obtain k l u v w where"k∥l"and lz:"l∥z"and kq:"k∥q"and zv:"z∥v"and qu:"q∥u"and uv:"u∥v"and lw:"l∥w"and wu:"w∥u"using ov by blast from cz lz lw have"c∥w"using M1 by auto with pc wu obtain cw where pcw:"p∥cw"and cwu:"cw∥u"using M5exist_var by blast from ap kq have"a∥q ⊕ ((∃t. a∥t ∧ t∥q) ⊕ (∃t. k∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") usingM2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with ap qu pcw cwu have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where at:"a∥t"and tq:"t∥q"by auto from pc tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where"t∥t'"and"t'∥c"by auto with pc pcw have"t'∥cw"using M1 by auto with at tq ap pcw cwu qu ‹t∥t'›have"(p,q)∈ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k∥t"and"t∥p"by auto with kq pcw cwu qu have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cbmi:"b O m^-1 ⊆ b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ b O m^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ b"and"(z,q) ∈ m^-1"by auto from‹(p,z) ∈ b›obtain c where pc:"p∥c"and cz:"c∥z"using b by auto obtain k where kp:"k∥p"using M3 meets_wd pc by blast from‹(z,q) ∈ m^-1›have qz:"q∥z"using m by auto obtain k' where kpq:"k'∥q"using M3 meets_wd qz by blast from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kp pc cz qz have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from pc tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where"t∥t'"and"t'∥c"by auto with pc cz qz kt tq kp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"k'∥t"and"t∥p"by auto with kpq pc cz qz have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cdov:"d O ov ⊆b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ d O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d"and"(z,q) ∈ ov"by auto from‹(p,z) ∈ d›obtain k l u v where kl:"k∥l"and lp:"l∥p"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using d by blast from‹(z,q) ∈ ov›obtain k' l' u' v' c where kplp:"k'∥l'"and kpz:"k'∥z"and lpq:"l'∥q"and zup:"z∥u'"and upvp:"u'∥v'"and qvp:"q∥v'"and"l'∥c"and"c∥u'"using ov by blast from zup zv uv have"u∥u'"using M1 by auto with pu upvp obtain uu where puu:"p∥uu"and uuvp:"uu∥v'"using M5exist_var by blast from lp lpq have"l∥q ⊕ ((∃t. l∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with lp puu uuvp qvp have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where lt:"l∥t"and tq:"t∥q"by auto from pu tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where ttp:"t∥t'"and"t'∥u"by auto with pu puu have"t'∥uu"using M1 by auto with lp puu qvp uuvp lt tq ttp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"l'∥t"and"t∥p"by auto with lpq puu uuvp qvp have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
lemma cdfi:"d O f^-1 ⊆ b ∪ m ∪ ov ∪ s ∪ d" proof fix x::"'a×'a"assume"x ∈ d O f^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d"and"(z,q) ∈ f^-1"by auto from‹(p,z) ∈ d›obtain k l u v where kl:"k∥l"and lp:"l∥p"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using d by blast from‹(z,q) ∈ f^-1›obtain k' l' u' where kpz:"k'∥z"and kplp:"k'∥l'"and lpq:"l'∥q"and zup:"z∥u'"and qup:"q∥u'"using f by blast from zup zv uv have uup:"u∥u'"using M1 by auto from lp lpq have"l∥q ⊕ ((∃t. l∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with lp pu uup qup have"(p,q) ∈ s"using s by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where lt:"l∥t"and tq:"t∥q"by auto from pu tq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. t∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ s ∪ d" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where ttp:"t∥t'"and tpu:"t'∥u"by auto with lt tq lp pu uup qup have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"l'∥t"and"t∥p"by auto with lpq pu uup qup have"(p,q) ∈ d"using d by blast thus ?thesis using x by auto} qed qed
(* =========$\beta_2$ composition ==========*) text‹We prove compositions of the form $r_1 \circ r_2 \subseteq b \cup m \cup ov\cup f^{-1} \cup d^{-1}$.›
lemma covdi:"ov O d^-1 ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ ov O d^-1"thenobtain p q z where"(p,z) : ov"and"(z,q) : d^-1"and x:"x = (p,q)"by auto from‹(p,z) : ov›obtain k l u v c where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"and lc:"l∥c"and cu:"c∥u"using ov by blast from‹(z,q) : d^-1›obtain l' k' u' v' where lpq:"l'∥q"and kplp:"k'∥l'"and kpz:"k'∥z"and qup:"q∥u'"and upvp:"u'∥v'"and zvp:"z∥v'"using d by blast from lz kpz kplp have"l∥l'"using M1 by auto with kl lpq obtain ll where kll:"k∥ll"and llq:"ll∥q"using M5exist_var by blast from pu qup have"p∥u' ⊕ ((∃t. p∥t ∧ t∥u') ⊕ (∃t. q∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup kll llq kp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tup:"t∥u'"by auto from pt lpq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. l'∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where lptp:"l'∥t'"and tpt:"t'∥t"by auto from lpq lptp llq have"ll∥t'"using M1 by auto with kp kll llq pt tup qup tpt have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥u"by auto with pu kll llq kp have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma cdib:"d^-1 O b ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ d^-1 O b"thenobtain p q z where"(p,z) : d^-1"and"(z,q) : b"and x:"x = (p,q)"by auto from‹(p,z) : d^-1›obtain k l u v where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and pv:"p∥v"and uv:"u∥v"and zu:"z∥u"using d by blast from‹(z,q) : b›obtain c where zc:"z∥c"and cq:"c∥q"using b by blast with kl lz obtain lzc where klzc:"k∥lzc"and lzcq:"lzc∥q"using M5exist_var by blast obtain v' where qvp:"q∥v'"using M3 meets_wd cq by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp kp klzc lzcq have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt cq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. c∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where ctp:"c∥t'"and tpt:"t'∥t"by auto from lzcq cq ctp have"lzc∥t'"using M1 by auto with pt tvp qvp kp klzc lzcq tpt have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with pv kp klzc lzcq have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma csdi:"s O d^-1 ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ s O d^-1"thenobtain p q z where"(p,z) : s"and"(z,q) : d^-1"and x:"x = (p,q)"by auto from‹(p,z) : s›obtain k u v where kp:"k∥p"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using s by blast from‹(z,q) : d^-1›obtain l' k' u' v' where lpq:"l'∥q"and kplp:"k'∥l'"and kpz:"k'∥z"and qup:"q∥u'"and upvp:"u'∥v'"and zvp:"z∥v'"using d by blast from kp kz kpz have kpp:"k'∥p"using M1 by auto from pu qup have"p∥u' ⊕ ((∃t. p∥t ∧ t∥u') ⊕ (∃t. q∥t ∧ t∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup kpp kplp lpq have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tup:"t∥u'"by auto from pt lpq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. l'∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where lptp:"l'∥t'"and tpt:"t'∥t"by auto with pt tup qup kpp kplp lpq have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥u"by auto with pu kpp kplp lpq have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma csib:"s^-1 O b ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ s^-1 O b"thenobtain p q z where"(p,z) : s^-1"and"(z,q) : b"and x:"x = (p,q)"by auto from‹(p,z) : s^-1›obtain k u v where kp:"k∥p"and kz:"k∥z"and zu:"z∥u"and uv:"u∥v"and pv:"p∥v"using s by blast from‹(z,q) : b›obtain c where zc:"z∥c"and cq:"c∥q"using b by blast from kz zc cq obtain zc where kzc:"k∥zc"and zcq:"zc∥q"using M5exist_var by blast obtain v' where qvp:"q∥v'"using M3 meets_wd cq by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp kp kzc zcq have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt cq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. c∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where ctp:"c∥t'"and tpt:"t'∥t"by auto from zcq cq ctp have"zc∥t'"using M1 by auto with zcq pt tvp qvp kzc kp ctp tpt have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with pv kp kzc zcq have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma covib:"ov^-1 O b ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ ov^-1 O b"thenobtain p q z where"(p,z) : ov^-1"and"(z,q) : b"and x:"x = (p,q)"by auto from‹(p,z) : ov^-1›obtain k l u v c where kz:"k∥z"and kl:"k∥l"and lp:"l∥p"and zu:"z∥u"anduv:"u∥v"and pv:"p∥v"and lc:"l∥c"and cu:"c∥u"using ov by blast from‹(z,q) : b›obtain w where zw:"z∥w"and wq:"w∥q"using b by blast from cu zu zw have cw:"c∥w"using M1 by auto with lc wq obtain cw where lcw:"l∥cw"and cwq:"cw∥q"using M5exist_var by blast obtain v' where qvp:"q∥v'"using M3 meets_wd wq by blast from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp lp lcw cwq have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt wq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. w∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where wtp:"w∥t'"and tpt:"t'∥t"by auto moreoverwith wq cwq have"cw∥t'"using M1 by auto ultimatelyhave"(p,q) ∈ ov"using ov cwq lp lcw pt tvp qvp by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with pv lp lcw cwq have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
lemma cmib:"m^-1 O b ⊆ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof fix x::"'a×'a"assume"x ∈ m^-1 O b"thenobtain p q z where"(p,z) : m^-1"and"(z,q) : b"and x:"x = (p,q)"by auto from‹(p,z) : m^-1›have zp:"z∥p"using m by auto from‹(z,q) : b›obtain w where zw:"z∥w"and wq:"w∥q"using b by blast obtain v where pv:"p∥v"using M3 meets_wd zp by blast obtain v' where qvp:"q∥v'"using M3 meets_wd wq by blast
from pv qvp have"p∥v' ⊕ ((∃t. p∥t ∧ t∥v') ⊕ (∃t. q∥t ∧ t∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with zp zw wq qvp have"(p,q) ∈ f^-1"using f by blast thus ?thesis using x by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where pt:"p∥t"and tvp:"t∥v'"by auto from pt wq have"p∥q ⊕ ((∃t'. p∥t' ∧ t'∥q) ⊕ (∃t'. w∥t' ∧ t'∥t))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ b ∪ m ∪ ov ∪ f^-1 ∪ d^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t' where wtp:"w∥t'"and tpt:"t'∥t"by auto with zp zw wq pt tvp qvp have"(p,q) ∈ ov"using ov by blast thus ?thesis using x by auto} qed
} next
{ assume"¬?A ∧¬?B ∧ ?C"thenhave ?C by simp thenobtain t where"q∥t"and"t∥v"by auto with zp zw wq pv have"(p,q) ∈ d^-1"using d by blast thus ?thesis using x by auto} qed qed
(*==========$\gamma$ composition =======*) subsection‹$\gamma$-composition› text‹We prove compositions of the form $r_1 \circ r_2 \subseteq ov \cup s \cup d\cup f \cup e \cup f^{-1} \cup d^{-1} \cup s^{-1} \cup ov^{-1}$.›
lemma covovi:"ov O ov^-1 ⊆ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1 " proof fix x::"'a×'a"assume"x ∈ ov O ov^-1"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov"and"(z, q) ∈ ov^-1"by auto from‹(p,z) ∈ ov›obtain k l c u where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and lc:"l∥c"and pu:"p∥u"and cu:"c∥u"using ov by blast from‹(z,q) ∈ ov^-1›obtain k' l' c' u' where kpq:"k'∥q"and kplp:"k'∥l'"and lpz:"l'∥z"andlpcp:"l'∥c'"and qup:"q∥u'"and cpup:"c'∥u'"using ov by blast
from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave kq:?A by simp from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kq kp qup have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp with kq kp qup show ?thesis using x s by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with kq kp pu show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup kp kt tq show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpup:"t'∥u'"by auto from tq kpq kplp have"t∥l'"using M1 by auto moreoverwith lpz lz lc have"l'∥c"using M1 by auto moreoverwith cu pu ptp have"c∥t'"using M1 by auto ultimatelyobtain lc where"t∥lc"and"lc∥t'"using M5exist_var by blast with ptp tpup kp kt tq qup show ?thesis using x ov by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with pu kp kt tq show ?thesis using x d by blast}
qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by auto thenobtain t where kpt:"k'∥t"and tp:"t∥p"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kpq kpt tp qup show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where"p∥t'"and"t'∥u'"by auto with kpq kpt tp qup show ?thesis using x d by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where qtp:"q∥t'"and tpu:"t'∥u"by auto from tp kp kl have"t∥l"using M1 by auto moreoverwith lpcp lpz lz have"l∥c'"using M1 by auto moreoverwith cpup qup qtp have"c'∥t'"using M1 by auto ultimatelyobtain lc where"t∥lc"and"lc∥t'"using M5exist_var by blast with kpt tp kpq qtp tpu pu show ?thesis using x ov by blast} qed} qed qed
lemma cdid:"d^-1 O d ⊆ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1 " proof fix x::"'a×'a"assume"x ∈ d^-1 O d"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ d^-1"and"(z, q) ∈ d"by auto from‹(p,z) ∈ d^-1›obtain k l u v where kp:"k∥p"and kl:"k∥l"and lz:"l∥z"and pv:"p∥v"and zu:"z∥u"and uv:"u∥v"using d by blast from‹(z,q) ∈ d›obtain k' l' u' v' where kpq:"k'∥q"and kplp:"k'∥l'"and lpz:"l'∥z"and qvp:"q∥v'"and zup:"z∥u'"and upvp:"u'∥v'"using d by blast
from kp kpq have"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave kq:?A by simp from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kq kp qvp have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp with kq kp qvp show ?thesis using x s by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with kq kp pv show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp kp kt tq show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpvp:"t'∥v'"by auto from tq kpq kplp have"t∥l'"using M1 by auto moreoverwith ptp pv uv have"u∥t'"using M1 by auto moreoverwith lpz zu ‹t∥l'›obtain lzu where"t∥lzu"and"lzu∥t'"using M5exist_var by blast ultimatelyshow ?thesis using x ov kt tq kp ptp tpvp qvp by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with pv kp kt tq show ?thesis using x d by blast}
qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by auto thenobtain t where kpt:"k'∥t"and tp:"t∥p"by auto from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kpq kpt tp qvp show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where"p∥t'"and"t'∥v'"by auto with kpq kpt tp qvp show ?thesis using x d by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where qtp:"q∥t'"and tpv:"t'∥v"by auto from tp kp kl have"t∥l"using M1 by auto moreoverwith qtp qvp upvp have"u'∥t'"using M1 by auto moreoverwith lz zup ‹t∥l›obtain lzu where"t∥lzu"and"lzu∥t'"using M5exist_var by blast ultimatelyshow ?thesis using x ov kpt tp kpq qtp tpv pv by blast} qed} qed qed
lemma coviov:"ov^-1 O ov ⊆ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1" proof fix x::"'a×'a"assume"x ∈ ov^-1 O ov"thenobtain p q z where x:"x = (p,q)"and"(p,z) ∈ ov^-1"and"(z, q) ∈ ov"by auto from‹(p,z) ∈ ov^-1›obtain k l c u v where kz:"k∥z"and kl:"k∥l"and lp:"l∥p"and lc:"l∥c"andzu:"z∥u"and pv:"p∥v"and cu:"c∥u"and uv:"u∥v"using ov by blast from‹(z,q) ∈ ov›obtain k' l' c' u' v' where kpz:"k'∥z"and kplp:"k'∥l'"and lpq:"l'∥q"and lpcp:"l'∥c'"and qvp:"q∥v'"and zup:"z∥u'"and cpup:"c'∥u'"and upvp:"u'∥v'"using ov by blast
from lp lpq have"l∥q ⊕ ((∃t. l∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈ e ∪ ov ∪ ov^-1 ∪ d ∪ d^-1 ∪ s ∪ s^-1 ∪ f ∪ f^-1" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave lq:?A by simp from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with lq lp qvp have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp with lq lp qvp show ?thesis using x s by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with lq lp pv show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where lt:"l∥t"and tq:"t∥q"by auto from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp lp lt tq show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpvp:"t'∥v'"by auto from tq lpq lpcp have"t∥c'"using M1 by auto moreoverwith cpup zup zu have"c'∥u"using M1 by auto moreoverwith ptp pv uv have"u∥t'"using M1 by auto ultimatelyobtain cu where"t∥cu"and"cu∥t'"using M5exist_var by blast with lt tq lp ptp tpvp qvp show ?thesis using x ov by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp with pv lp lt tq show ?thesis using x d by blast}
qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by auto thenobtain t where lpt:"l'∥t"and tp:"t∥p"by auto from pv qvp have"p∥v' ⊕ ((∃t'. p∥t' ∧ t'∥v') ⊕ (∃t'. q∥t' ∧ t'∥v))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qvp lpq lpt tp show ?thesis using x f by blast} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where"p∥t'"and"t'∥v'"by auto with qvp lpq lpt tp show ?thesis using x d by blast} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where qtp:"q∥t'"and tpv:"t'∥v"by auto from tp lp lc have"t∥c"using M1 by auto moreoverwith cu zu zup have"c∥u'"using M1 by auto moreoverwith qtp qvp upvp have"u'∥t'"using M1 by auto ultimatelyobtain cu where"t∥cu"and"cu∥t'"using M5exist_var by blast with lpt tp lpq pv qtp tpv show ?thesis using x ov by blast} qed} qed qed
(* ===========$\delta$ composition =========*) subsection‹$\gamma$-composition› text‹We prove compositions of the form $r_1 \circ r_2 \subseteq b \cup m \cup ov\cup s \cup d \cup f \cup e \cup f^{-1} \cup d^{-1} \cup s^{-1} \cup ov^{-1} \cup b^{-1} \cup m^{-1}$.›
lemma cbbi:"b O b^-1 ⊆ b ∪ b^-1 ∪ m ∪ m^-1 ∪ e ∪ ov ∪ ov^-1 ∪ s ∪ s^-1 ∪ d ∪ d^-1∪ f ∪ f^-1" (is"b O b^-1 ⊆ ?R") proof fix x::"'a×'a"assume"x ∈ b O b^-1"thenobtain p q z::'a where x:"x = (p,q)"and"(p,z) ∈b"and"(z,q) ∈ b^-1"by auto from‹(p,z)∈b›obtain c where pc:"p∥c"and"c∥z"using b by blast from‹(z,q) ∈ b^-1›obtain c' where qcp:"q∥c'"and"c'∥z"using b by blast obtain k k' where kp:"k∥p"and kpq:"k'∥q"using M3 meets_wd pc qcp by fastforce thenhave"k∥q ⊕ ((∃t. k∥t ∧ t∥q) ⊕ (∃t. k'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈?R" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave kq:?A by simp from pc qcp have"p∥c' ⊕ ((∃t'. p∥t' ∧ t'∥c') ⊕ (∃t'. q∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp with kp kq qcp have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{assume"¬?A∧?B∧¬?C"thenhave"?B"by simp with kq kp qcp show ?thesis using x s by blast} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp with kq kp pc show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where kt:"k∥t"and tq:"t∥q"by auto from pc qcp have"p∥c' ⊕ ((∃t'. p∥t' ∧ t'∥c') ⊕ (∃t'. q∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with kp qcp kt tq show ?thesis using f x by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpcp:"t'∥c'"by auto from pc tq have"p∥q ⊕ ((∃t''. p∥t'' ∧ t''∥q) ⊕ (∃t''. t∥t'' ∧ t''∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain g where"t∥g"and"g∥c"by auto moreoverwith pc ptp have"g∥t'"using M1 by blast ultimatelyshow ?thesis using x ov kt tq kp ptp tpcp qcp by blast} qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where"q∥t'"and"t'∥c"by auto with kp kt tq pc show ?thesis using d x by blast} qed} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t where kpt:"k'∥t"and tp:"t∥p"by auto from pc qcp have"p∥c' ⊕ ((∃t'. p∥t' ∧ t'∥c') ⊕ (∃t'. q∥t' ∧ t'∥c))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qcp kpt tp kpq show ?thesis using x f by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp with qcp kpt tp kpq show ?thesis using x d by blast} next
{assume"¬?A∧¬?B∧?C"thenobtain t' where qt':"q∥t'"and tpc:"t'∥c"by auto from qcp tp have"q∥p ⊕ ((∃t''. q∥t'' ∧ t''∥p) ⊕ (∃t''. t∥t'' ∧ t''∥c'))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenobtain g where tg:"t∥g"and"g∥c'"by auto with qcp qt' have"g∥t'"using M1 by blast with qt' tpc pc kpq kpt tp tg show ?thesis using x ov by blast} qed} qed} qed qed
lemma cbib:"b^-1 O b ⊆ b ∪ b^-1 ∪ m ∪ m^-1 ∪ e ∪ ov ∪ ov^-1 ∪ s ∪ s^-1 ∪ d ∪ d^-1∪ f ∪ f^-1" (is"b^-1 O b ⊆ ?R") proof fix x::"'a×'a"assume"x ∈ b^-1 O b"thenobtain p q z::'a where x:"x = (p,q)"and"(p,z) ∈b^-1"and"(z,q) ∈ b"by auto from‹(p,z)∈b^-1›obtain c where zc:"z∥c"and cp:"c∥p"using b by blast from‹(z,q) ∈ b›obtain c' where zcp:"z∥c'"and cpq:"c'∥q"using b by blast obtain u u' where pu:"p∥u"and qup:"q∥u'"using M3 meets_wd cp cpq by fastforce from cp cpq have"c∥q ⊕ ((∃t. c∥t ∧ t∥q) ⊕ (∃t. c'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈?R" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave cq:?A by simp from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp with cq cp qup have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{assume"¬?A∧?B∧¬?C"thenhave"?B"by simp with cq cp qup show ?thesis using x s by blast} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp with pu cq cp show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where ct:"c∥t"and tq:"t∥q"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup ct tq cp show ?thesis using f x by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpup:"t'∥u'"by auto from pu tq have"p∥q ⊕ ((∃t''. p∥t'' ∧ t''∥q) ⊕ (∃t''. t∥t'' ∧ t''∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain g where"t∥g"and"g∥u"by auto moreoverwith pu ptp have"g∥t'"using M1 by blast ultimatelyshow ?thesis using x ov ct tq cp ptp tpup qup by blast} qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where"q∥t'"and"t'∥u"by auto with cp ct tq pu show ?thesis using d x by blast} qed} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t where cpt:"c'∥t"and tp:"t∥p"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup cpt tp cpq show ?thesis using x f by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp with qup cpt tp cpq show ?thesis using x d by blast} next
{assume"¬?A∧¬?B∧?C"thenobtain t' where qt':"q∥t'"and tpc:"t'∥u"by auto from qup tp have"q∥p ⊕ ((∃t''. q∥t'' ∧ t''∥p) ⊕ (∃t''. t∥t'' ∧ t''∥u'))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenobtain g where tg:"t∥g"and"g∥u'"by auto with qup qt' have"g∥t'"using M1 by blast with qt' tpc pu cpq cpt tp tg show ?thesis using x ov by blast} qed} qed} qed qed
lemma cddi:"d O d^-1 ⊆ b ∪ b^-1 ∪ m ∪ m^-1 ∪ e ∪ ov ∪ ov^-1 ∪ s ∪ s^-1 ∪ d ∪ d^-1∪ f ∪ f^-1" (is"d O d^-1 ⊆ ?R") proof fix x::"'a×'a"assume"x ∈ d O d^-1"thenobtain p q z::'a where x:"x = (p,q)"and"(p,z) ∈d"and"(z,q) ∈ d^-1"by auto from‹(p,z) ∈ d›obtain k l u v where lp:"l∥p"and kl:"k∥l"and kz:"k∥z"and pu:"p∥u"and uv:"u∥v"and zv:"z∥v"using d by blast from‹(z,q) ∈ d^-1›obtain k' l' u' v' where lpq:"l'∥q"and kplp:"k'∥l'"and kpz:"k'∥z"and qup:"q∥u'"and upvp:"u'∥v'"and zv':"z∥v'"using d by blast from lp lpq have"l∥q ⊕ ((∃t. l∥t ∧ t∥q) ⊕ (∃t. l'∥t ∧ t∥p))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus"x ∈?R" proof (elim disjE)
{ assume"?A∧¬?B∧¬?C"thenhave lq:?A by simp from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"(?A∧¬?B∧¬?C)"thenhave"?A"by simp with lq lp qup have"p = q"using M4 by auto thus ?thesis using x e by auto} next
{assume"¬?A∧?B∧¬?C"thenhave"?B"by simp with lq lp qup show ?thesis using x s by blast} next
{assume"(¬?A∧¬?B∧?C)"thenhave"?C"by simp with pu lq lp show ?thesis using x s by blast} qed} next
{ assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t where lt:"l∥t"and tq:"t∥q"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup lt tq lp show ?thesis using f x by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thenobtain t' where ptp:"p∥t'"and tpup:"t'∥u'"by auto from pu tq have"p∥q ⊕ ((∃t''. p∥t'' ∧ t''∥q) ⊕ (∃t''. t∥t'' ∧ t''∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain g where"t∥g"and"g∥u"by auto moreoverwith pu ptp have"g∥t'"using M1 by blast ultimatelyshow ?thesis using x ov lt tq lp ptp tpup qup by blast} qed} next
{assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t' where"q∥t'"and"t'∥u"by auto with lp lt tq pu show ?thesis using d x by blast} qed} next
{ assume"¬?A∧¬?B∧?C"thenhave ?C by simp thenobtain t where lpt:"l'∥t"and tp:"t∥p"by auto from pu qup have"p∥u' ⊕ ((∃t'. p∥t' ∧ t'∥u') ⊕ (∃t'. q∥t' ∧ t'∥u))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp with qup lpt tp lpq show ?thesis using x f by blast} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp with qup lpt tp lpq show ?thesis using x d by blast} next
{assume"¬?A∧¬?B∧?C"thenobtain t' where qt':"q∥t'"and tpc:"t'∥u"by auto from qup tp have"q∥p ⊕ ((∃t''. q∥t'' ∧ t''∥p) ⊕ (∃t''. t∥t'' ∧ t''∥u'))" (is"?A ⊕ (?B ⊕ ?C)") using M2 by blast thenhave"(?A∧¬?B∧¬?C) ∨ ((¬?A∧?B∧¬?C) ∨ (¬?A∧¬?B∧?C))"by (insert xor_distr_L[of ?A ?B ?C], auto simp:elimmeets) thus ?thesis proof (elim disjE)
{assume"?A∧¬?B∧¬?C"thenhave ?A by simp thus ?thesis using x m by auto} next
{assume"¬?A∧?B∧¬?C"thenhave ?B by simp thus ?thesis using x b by auto} next
{ assume"¬?A∧¬?B∧?C"thenobtain g where tg:"t∥g"and"g∥u'"by auto with qup qt' have"g∥t'"using M1 by blast with qt' tpc pu lpq lpt tp tg show ?thesis using x ov by blast} qed} qed} qed qed
(* ========= inverse ========== *) subsection‹The rest of the composition table› text‹Because of the symmetry $(r_1 \circ r_2)^{-1} = r_2^{-1} \circ r_1^{-1} $, the rest of the compositions is easily deduced.›
lemma cmbi:"m O b^-1 ⊆ b^-1 ∪ m^-1 ∪ s^-1 ∪ ov^-1 ∪ d^-1" using cbmi by auto
lemma covmi:"ov O m^-1 ⊆ ov^-1 ∪ d^-1 ∪ s^-1" using cmovi by auto
lemma covbi:"ov O b^-1 ⊆ b^-1 ∪ m^-1 ∪ s^-1 ∪ ov^-1 ∪ d^-1" using cbovi by auto
lemma cfiovi:"f^-1 O ov^-1 ⊆ ov^-1 ∪ s^-1 ∪ d^-1" using covf by auto
lemma cfimi:"(f^-1 O m^-1) ⊆ s^-1 ∪ ov^-1 ∪ d^-1" using cmf by auto
lemma cfibi:"f^-1 O b^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ s^-1 ∪ d^-1" using cbf by auto
lemma cdif:"d^-1 O f ⊆ ov^-1 ∪ s^-1 ∪ d^-1" using cfid by auto
lemma cdiovi:"d^-1 O ov ^-1 ⊆ ov^-1 ∪ s^-1 ∪ d^-1" using covd by auto
lemma cdimi:"d^-1 O m^-1 ⊆ s^-1 ∪ ov^-1 ∪ d^-1 " using cmd by auto
lemma cdibi:"d^-1 O b^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ s^-1 ∪ d^-1" using cbd by auto
lemma csd:"s O d ⊆ d" using cdisi by auto
lemma csf:"s O f ⊆ d" using cfisi by auto
lemma csovi:"s O ov^-1 ⊆ ov^-1 ∪ f ∪ d" using covsi by auto
lemma csmi:"s O m^-1 ⊆ m^-1" using cmsi by auto
lemma csbi:"s O b^-1 ⊆ b^-1" using cbsi by auto
lemma csisi:"s^-1 O s^-1 ⊆ s^-1" using css by auto
lemma csid:"s^-1 O d ⊆ ov^-1 ∪ f ∪ d" using cdis by auto
lemma csif:"s^-1 O f ⊆ ov^-1" using cfis by auto
lemma csiovi:"s^-1 O ov^-1 ⊆ ov^-1" using covs by auto
lemma csimi:"s^-1 O m^-1 ⊆ m^-1" using cms by auto
lemma csibi:"s^-1 O b^-1 ⊆ b^-1" using cbs by auto
lemma cds:"d O s ⊆ d" using csidi by auto
lemma cdsi:"d O s^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using csdi by auto
lemma cdd:"d O d ⊆ d" using cdidi by auto
lemma cdf:"d O f ⊆ d" using cfidi by auto
lemma cdovi:"d O ov^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using covdi by auto
lemma cdmi:"d O m^-1 ⊆ b^-1" using cmdi by auto
lemma cdbi:"d O b^-1 ⊆ b^-1" using cbdi by auto
lemma cfdi:"f O d^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ s^-1 ∪ d^-1 " using cdfi by auto
lemma cfs:"f O s ⊆ d" using csifi by auto
lemma cfsi:"f O s^-1 ⊆ b ^-1 ∪ m^-1 ∪ ov ^-1" using csfi by auto
lemma cfd:"f O d ⊆ d" using cdifi by auto
lemma cff:"f O f ⊆ f" using cfifi by auto
lemma cfovi:"f O ov^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1" using covfi by auto
lemma cfmi:"f O m^-1 ⊆ b^-1" using cmfi by auto
lemma cfbi:"f O b^-1 ⊆ b^-1" using cbfi by auto
lemma covifi:"ov^-1 O f^-1 ⊆ ov^-1 ∪ s^-1 ∪ d^-1" using cfov by auto
lemma covidi:"ov^-1 O d^-1 ⊆ b^-1 ∪ m^-1 ∪ s^-1 ∪ ov^-1 ∪ d^-1" using cdov by auto
lemma covis:"ov^-1 O s ⊆ ov^-1 ∪ f ∪ d" using csiov by auto
lemma covisi:"ov^-1 O s^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1" using csov by auto
lemma covid:"ov^-1 O d ⊆ ov^-1 ∪ f ∪ d" using cdiov by auto
lemma covif:"ov^-1 O f ⊆ ov^-1" using cfiov by auto
lemma coviovi:"ov^-1 O ov^-1 ⊆ b^-1 ∪ m^-1 ∪ ov^-1" using covov by auto
lemma covimi:"ov^-1 O m^-1 ⊆ b^-1" using cmov by auto
lemma covibi:"ov^-1 O b^-1 ⊆ b^-1" using cbov by auto
lemma cmiov:"m^-1 O ov ⊆ ov^-1 ∪ d ∪ f" using covim by auto
lemma cmifi:"m^-1 O f^-1 ⊆ m^-1" using cfm by auto
lemma cmidi:"m^-1 O d^-1 ⊆ b^-1" using cdm by auto
lemma cmis:"m^-1 O s ⊆ ov^-1 ∪ d ∪ f" using csim by auto
lemma cmisi:"m^-1 O s^-1 ⊆ b^-1" using csm by auto
lemma cmid:"m^-1 O d ⊆ ov^-1 ∪ d ∪ f" using cdim by auto
lemma cmif:"m^-1 O f ⊆ m^-1" using cfim by auto
lemma cmiovi:"m^-1 O ov^-1 ⊆ b^-1" using covm by auto
lemma cmimi:"m^-1 O m^-1 ⊆ b^-1" using cmm by auto
lemma cmibi:"m^-1 O b^-1 ⊆ b^-1" using cbm by auto
lemma cbim:"b^-1 O m ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using cmib by auto
lemma cbiov:"b^-1 O ov ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using covib by auto
lemma cbifi:"b^-1 O f^-1 ⊆ b^-1" using cfb by auto
lemma cbidi:"b^-1 O d^-1 ⊆ b^-1" using cdb by auto
lemma cbis:"b^-1 O s ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using csib by auto
lemma cbisi:"b^-1 O s^-1 ⊆ b^-1" using csb by auto
lemma cbid:"b^-1 O d ⊆ b^-1 ∪ m^-1 ∪ ov^-1 ∪ f ∪ d" using cdib by auto
lemma cbif:"b^-1 O f ⊆ b^-1" using cfib by auto
lemma cbiovi:"b^-1 O ov^-1 ⊆ b^-1" using covb by auto
lemma cbimi:"b^-1 O m^-1 ⊆ b^-1" using cmb by auto
lemma cbibi:"b^-1 O b^-1 ⊆ b^-1" using cbb by auto
(****)
subsection‹Composition rules›
named_theorems ce_rules declare cem[ce_rules] and ceb[ce_rules] and ceov[ce_rules] and ces[ce_rules] and cef[ce_rules] and ced[ce_rules] and
cemi[ce_rules] and cebi[ce_rules] and ceovi[ce_rules] and cesi[ce_rules] and cefi[ce_rules] and cedi[ce_rules]
named_theorems cm_rules declare cme[cm_rules] and cmb[cm_rules] and cmm[cm_rules] and cmov[cm_rules] and cms [cm_rules] and cmd[cm_rules] and cmf[cm_rules] and
cmbi[cm_rules] and cmmi[cm_rules] and cmovi[cm_rules] and cmsi[cm_rules] and cmdi[cm_rules] and cmfi[cm_rules]
named_theorems cb_rules declare cbe[cb_rules] and cbm[cb_rules] and cbb[cb_rules] and cbov[cb_rules] and cbs [cb_rules] and cbd[cb_rules] and cbf[cb_rules] and
cbbi[cb_rules] and cbbi[cb_rules] and cbovi[cb_rules] and cbsi[cb_rules] and cbdi[cb_rules] and cbfi[cb_rules]
named_theorems cov_rules declare cove[cov_rules] and covb[cov_rules] and covb[cov_rules] and covov[cov_rules] and covs [cov_rules] and covd[cov_rules] and covf[cov_rules] and
covbi[cov_rules] and covbi[cov_rules] and covovi[cov_rules] and covsi[cov_rules] and covdi[cov_rules] and covfi[cov_rules]
named_theorems cs_rules declare cse[cs_rules] and csb[cs_rules] and csb[cs_rules] and csov[cs_rules] and css [cs_rules] and csd[cs_rules] and csf[cs_rules] and
csbi[cs_rules] and csbi[cs_rules] and csovi[cs_rules] and cssi[cs_rules] and csdi[cs_rules] and csfi[cs_rules]
named_theorems cf_rules declare cfe[cf_rules] and cfb[cf_rules] and cfb[cf_rules] and cfov[cf_rules] and cfs [cf_rules] and cfd[cf_rules] and cff[cf_rules] and
cfbi[cf_rules] and cfbi[cf_rules] and cfovi[cf_rules] and cfsi[cf_rules] and cfdi[cf_rules] and cffi[cf_rules]
named_theorems cd_rules declare cde[cd_rules] and cdb[cd_rules] and cdb[cd_rules] and cdov[cd_rules] and cds [cd_rules] and cdd[cd_rules] and cdf[cd_rules] and
cdbi[cd_rules] and cdbi[cd_rules] and cdovi[cd_rules] and cdsi[cd_rules] and cddi[cd_rules] and cdfi[cd_rules]
named_theorems cmi_rules declare cmie[cmi_rules] and cmib[cmi_rules] and cmib[cmi_rules] and cmiov[cmi_rules] and cmis [cmi_rules] and cmid[cmi_rules] and cmif[cmi_rules] and
cmibi[cmi_rules] and cmibi[cmi_rules] and cmiovi[cmi_rules] and cmisi[cmi_rules] and cmidi[cmi_rules] and cmifi[cmi_rules]
named_theorems cbi_rules declare cbie[cbi_rules] and cbim[cbi_rules] and cbib[cbi_rules] and cbiov[cbi_rules] and cbis [cbi_rules] and cbid[cbi_rules] and cbif[cbi_rules] and
cbimi[cbi_rules] and cbibi[cbi_rules] and cbiovi[cbi_rules] and cbisi[cbi_rules] and cbidi[cbi_rules] and cbifi[cbi_rules]
named_theorems covi_rules declare covie[covi_rules] and covib[covi_rules] and covib[covi_rules] and coviov[covi_rules] and covis [covi_rules] and covid[covi_rules] and covif[covi_rules] and
covibi[covi_rules] and covibi[covi_rules] and coviovi[covi_rules] and covisi[covi_rules] and covidi[covi_rules] and covifi[covi_rules]
named_theorems csi_rules declare csie[csi_rules] and csib[csi_rules] and csib[csi_rules] and csiov[csi_rules] and csis [csi_rules] and csid[csi_rules] and csif[csi_rules] and
csibi[csi_rules] and csibi[csi_rules] and csiovi[csi_rules] and csisi[csi_rules] and csidi[csi_rules] and csifi[csi_rules]
named_theorems cfi_rules declare cfie[cfi_rules] and cfib[cfi_rules] and cfib[cfi_rules] and cfiov[cfi_rules] and cfis [cfi_rules] and cfid[cfi_rules] and cfif[cfi_rules] and
cfibi[cfi_rules] and cfibi[cfi_rules] and cfiovi[cfi_rules] and cfisi[cfi_rules] and cfidi[cfi_rules] and cfifi[cfi_rules]
named_theorems cdi_rules declare cdie[cdi_rules] and cdib[cdi_rules] and cdib[cdi_rules] and cdiov[cdi_rules] and cdis [cdi_rules] and cdid[cdi_rules] and cdif[cdi_rules] and
cdibi[cdi_rules] and cdibi[cdi_rules] and cdiovi[cdi_rules] and cdisi[cdi_rules] and cdidi[cdi_rules] and cdifi[cdi_rules] (**)
named_theorems cre_rules declare cee[cre_rules] and cme[cre_rules] and cbe[cre_rules] and cove[cre_rules] and cse[cre_rules] and cfe[cre_rules] and cde[cre_rules] and
cmie[cre_rules] and cbie[cre_rules] and covie[cre_rules] and csie[cre_rules] and cfie[cre_rules] and cdie[cre_rules]
named_theorems crm_rules declare cem[crm_rules] and cbm[crm_rules] and cmm[crm_rules] and covm[crm_rules] and csm[crm_rules] and cfm[crm_rules] and cdm[crm_rules] and
cmim[crm_rules] and cbim[crm_rules] and covim[crm_rules] and csim[crm_rules] and cfim[crm_rules] and cdim[crm_rules]
named_theorems crmi_rules declare cemi[crmi_rules] and cbmi[crmi_rules] and cmmi[crmi_rules] and covmi[crmi_rules] and csmi[crmi_rules] and cfmi[crmi_rules] and cdmi[crmi_rules] and
cmimi[crmi_rules] and cbimi[crmi_rules] and covimi[crmi_rules] and csimi[crmi_rules] and cfimi[crmi_rules] and cdimi[crmi_rules]
named_theorems crs_rules declare ces[crs_rules] and cbs[crs_rules] and cms[crs_rules] and covs[crs_rules] and css[crs_rules] and cfs[crs_rules] and cds[crs_rules] and
cmis[crs_rules] and cbis[crs_rules] and covis[crs_rules] and csis[crs_rules] and cfis[crs_rules] and cdis[crs_rules]
named_theorems crsi_rules declare cesi[crsi_rules] and cbsi[crsi_rules] and cmsi[crsi_rules] and covsi[crsi_rules] and cssi[crsi_rules] and cfsi[crsi_rules] and cdsi[crsi_rules] and
cmisi[crsi_rules] and cbisi[crsi_rules] and covisi[crsi_rules] and csisi[crsi_rules] and cfisi[crsi_rules] and cdisi[crsi_rules]
named_theorems crb_rules declare ceb[crb_rules] and cbb[crb_rules] and cmb[crb_rules] and covb[crb_rules] and csb[crb_rules] and cfb[crb_rules] and cdb[crb_rules] and
cmib[crb_rules] and cbib[crb_rules] and covib[crb_rules] and csib[crb_rules] and cfib[crb_rules] and cdib[crb_rules]
named_theorems crbi_rules declare cebi[crbi_rules] and cbbi[crbi_rules] and cmbi[crbi_rules] and covbi[crbi_rules] and csbi[crbi_rules] and cfbi[crbi_rules] and cdbi[crbi_rules] and
cmibi[crbi_rules] and cbibi[crbi_rules] and covibi[crbi_rules] and csibi[crbi_rules] and cfibi[crbi_rules] and cdibi[crbi_rules]
named_theorems crov_rules declare ceov[crov_rules] and cbov[crov_rules] and cmov[crov_rules] and covov[crov_rules] and csov[crov_rules] and cfov[crov_rules] and cdov[crov_rules] and
cmiov[crov_rules] and cbiov[crov_rules] and coviov[crov_rules] and csiov[crov_rules] and cfiov[crov_rules] and cdiov[crov_rules]
named_theorems crovi_rules declare ceovi[crovi_rules] and cbovi[crovi_rules] and cmovi[crovi_rules] and covovi[crovi_rules] and csovi[crovi_rules] and cfovi[crovi_rules] and cdovi[crovi_rules] and
cmiovi[crovi_rules] and cbiovi[crovi_rules] and coviovi[crovi_rules] and csiovi[crovi_rules] and cfiovi[crovi_rules] and cdiovi[crovi_rules]
named_theorems crf_rules declare cef[crf_rules] and cbf[crf_rules] and cmf[crf_rules] and covf[crf_rules] and csf[crf_rules] and cff[crf_rules] and cdf[crf_rules] and
cmif[crf_rules] and cbif[crf_rules] and covif[crf_rules] and csif[crf_rules] and cfif[crf_rules] and cdif[crf_rules]
named_theorems crfi_rules declare cefi[crfi_rules] and cbfi[crfi_rules] and cmfi[crfi_rules] and covfi[crfi_rules] and csfi[crfi_rules] and cffi[crfi_rules] and cdfi[crfi_rules] and
cmifi[crfi_rules] and cbifi[crfi_rules] and covifi[crfi_rules] and csifi[crfi_rules] and cfifi[crfi_rules] and cdifi[crfi_rules]
named_theorems crd_rules declare ced[crd_rules] and cbd[crd_rules] and cmd[crd_rules] and covd[crd_rules] and csd[crd_rules] and cfd[crd_rules] and cdd[crd_rules] and
cmid[crd_rules] and cbid[crd_rules] and covid[crd_rules] and csid[crd_rules] and cfid[crd_rules] and cdid[crd_rules]
named_theorems crdi_rules declare cedi[crdi_rules] and cbdi[crdi_rules] and cmdi[crdi_rules] and covdi[crdi_rules] and csdi[crdi_rules] and cfdi[crdi_rules] and cddi[crdi_rules] and
cmidi[crdi_rules] and cbidi[crdi_rules] and covidi[crdi_rules] and csidi[crdi_rules] and cfidi[crdi_rules] and cdidi[crdi_rules]
end
Messung V0.5 in Prozent
¤ 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.0.228Bemerkung:
(vorverarbeitet am 2026-07-02)
¤
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.