From 65b26be0b365eb4c5918346b92d7f98e942ffea3 Mon Sep 17 00:00:00 2001 From: SKolodynski Date: Fri, 26 Jul 2024 19:59:32 +0200 Subject: [PATCH] release 1.31.0 --- IsarMathLib/MetricSpace_ZF.thy | 30 +- IsarMathLib/document/root.tex | 2 +- docs/IsarMathLib/Fol1.html | 12 +- docs/IsarMathLib/Group_ZF_5.html | 387 ++++++----- docs/IsarMathLib/MetricSpace_ZF.html | 555 ++++++++++++--- docs/IsarMathLib/MetricSpace_ZF_1.html | 111 +-- docs/IsarMathLib/Order_ZF.html | 208 +++--- docs/IsarMathLib/OrderedLoop_ZF.html | 217 +++--- docs/IsarMathLib/Real_ZF_2.html | 24 +- docs/IsarMathLib/Topology_ZF_examples.html | 278 ++++---- docs/IsarMathLib/UniformSpace_ZF.html | 407 ++++++++--- docs/IsarMathLib/UniformSpace_ZF_2.html | 238 +++---- docs/IsarMathLib/ZF1.html | 230 +++--- docs/IsarMathLib/document.pdf | Bin 5458827 -> 5508769 bytes docs/IsarMathLib/func1.html | 769 +++++++++++---------- docs/IsarMathLib/index.html | 16 +- docs/IsarMathLib/outline.pdf | Bin 1879949 -> 1909776 bytes docs/IsarMathLib/session_graph.pdf | Bin 22279 -> 22288 bytes 18 files changed, 2085 insertions(+), 1399 deletions(-) diff --git a/IsarMathLib/MetricSpace_ZF.thy b/IsarMathLib/MetricSpace_ZF.thy index d57f8f9..f63795f 100644 --- a/IsarMathLib/MetricSpace_ZF.thy +++ b/IsarMathLib/MetricSpace_ZF.thy @@ -65,7 +65,7 @@ text\A disk is defined as set of points located less than the radius from definition "Disk(X,d,r,c,R) \ {x\X. \d`\c,x\,R\ \ StrictVersion(r)}" -text\We define a metric topology as consisting of unions of open disks.\ +text\We define \metric topology\ as consisting of unions of open disks.\ definition "MetricTopology(X,L,A,r,d) \ {\\. \ \ Pow(\c\X. {Disk(X,d,r,c,R). R\PositiveSet(L,A,r)})}" @@ -94,7 +94,7 @@ locale pmetric_space = loop1 + text\ The next lemma shows the definition of the pseudometric in the notation used in the - \metric_space\ context.\ + \pmetric_space\ context.\ lemma (in pmetric_space) pmetric_properties: shows "d: X\X \ L\<^sup>+" @@ -104,7 +104,7 @@ lemma (in pmetric_space) pmetric_properties: shows using pmetricAssum unfolding IsApseudoMetric_def by auto text\The values of the metric are in the in the nonnegative set of the loop, - hence in the loop. /\ + hence in the loop.\ lemma (in pmetric_space) pmetric_loop_valued: assumes "x\X" "y\X" shows "d`\x,y\ \ L\<^sup>+" "d`\x,y\ \ L" @@ -231,9 +231,9 @@ text\Disks centered at points farther away than the sum of radii do not ov lemma (in pmetric_space) far_disks: assumes "x\X" "y\X" "r\<^sub>x\r\<^sub>y \ d`\x,y\" - shows "disk(x,r\<^sub>x)\disk(y,r\<^sub>y) = 0" + shows "disk(x,r\<^sub>x)\disk(y,r\<^sub>y) = \" proof - - { assume "disk(x,r\<^sub>x)\disk(y,r\<^sub>y) \ 0" + { assume "disk(x,r\<^sub>x)\disk(y,r\<^sub>y) \ \" then obtain z where "z \ disk(x,r\<^sub>x)\disk(y,r\<^sub>y)" by auto then have "z\X" and "d`\x,z\ \ d`\y,z\ \ r\<^sub>x\r\<^sub>y" using disk_definition add_ineq_strict by auto @@ -272,9 +272,9 @@ proof - thus ?thesis by simp qed -text\Unions of disks form a topology, hence (pseudo)metric spaces are topological spaces. - Recall that in the \pmetric_space\ context $\tau$ is the metric topology (i.e. set of unions - of open disks. \ +text\If the order of the loop down-directs its set of positive elements + then the metric topology defined as collection of unions of (open) disks is indeed a topology. + Recall that in the \pmetric_space\ context $\tau$ denotes the metric topology. \ theorem (in pmetric_space) pmetric_is_top: assumes "r {down-directs} L\<^sub>+" @@ -290,7 +290,7 @@ theorem (in pmetric_space) disks_are_base: shows "B {is a base for} \" using assms disks_form_base Top_1_2_T1 metric_top_def_alt by simp -text\$X$ is the carrier of metric topology.\ +text\If $r$ down-directs $L_+$ then $X$ is the carrier of metric topology.\ theorem (in pmetric_space) metric_top_carrier: assumes "r {down-directs} L\<^sub>+" shows "\\ = X" @@ -315,7 +315,7 @@ lemma (in pmetric_space) topology0_valid_in_pmetric_space: shows "topology0(\)" using assms pmetric_is_top unfolding topology0_def by simp -text\Disks are open in the metric topology.\ +text\If $r$ down-directs $L_+$ then disks are open in the metric topology.\ lemma (in pmetric_space) disks_open: assumes "c\X" "R\L\<^sub>+" "r {down-directs} L\<^sub>+" @@ -346,7 +346,7 @@ proof - using ident_indisc posset_definition posset_definition1 by auto qed -text\An ordered loop valued metric space is $T_2$ (i.e. Hausdorff).\ +text\If $r$ down-directs $L_+$ then the ordered loop valued metric space is $T_2$ (i.e. Hausdorff).\ theorem (in metric_space) metric_space_T2: assumes "r {down-directs} L\<^sub>+" @@ -444,9 +444,8 @@ lemma (in pmetric_space) gauge_members: by simp text\Suppose $b\in L^+$ (i.e. b is an element of the loop that is greater than the neutral element) - and $x\in X$. Then the set $B=\{ d^{-1}(\{c\in L^+: c\leq b\}$ is a relation on $X$ and - the image of the singleton set $\{ x\}$ by that relation is the set - $\{ y\in X:d\langle x,y\rangle \leq b\}$, + and $x\in X$. Then the image of the singleton set $\{ x\}$ by the relation + $B=\{ d^{-1}(\{c\in L^+: c\leq b\}$ is the set $\{ y\in X:d\langle x,y\rangle \leq b\}$, i.e. the closed disk with center $x$ and radius $b$. Hence the the image $B\{ x\}$ contains the open disk with center $x$ and radius $b$. \ @@ -518,7 +517,8 @@ corollary (in pmetric_space) gauge_3rd_cond: assumes "B\<^sub>1\\" shows "\B\<^sub>2\\. B\<^sub>2 \ converse(B\<^sub>1)" using assms gauge_symmetric by auto -text\The sets of the form $d^{-1}([0,b])$ are subsets of $X\times X$. \ +text\The collection of sets of the form $d^{-1}([0,b])$ for $b\in L_+$ + is contained of the powerset of $X\times X$.\ lemma (in pmetric_space) gauge_5thCond: shows "\\Pow(X\X)" using uniform_gauge_def_alt pmetric_properties(1) func1_1_L3 by force diff --git a/IsarMathLib/document/root.tex b/IsarMathLib/document/root.tex index a20e070..c7029ed 100644 --- a/IsarMathLib/document/root.tex +++ b/IsarMathLib/document/root.tex @@ -66,7 +66,7 @@ \maketitle \begin{abstract} -This is the proof document of the IsarMathLib project version 1.30.0. +This is the proof document of the IsarMathLib project version 1.31.0. IsarMathLib is a library of formalized mathematics for Isabelle2024 (ZF logic). \end{abstract} diff --git a/docs/IsarMathLib/Fol1.html b/docs/IsarMathLib/Fol1.html index 7a27d20..da3afb8 100644 --- a/docs/IsarMathLib/Fol1.html +++ b/docs/IsarMathLib/Fol1.html @@ -193,20 +193,20 @@

Theory Fol1

using
Xor_def by auto text‹Constructions from the same sets are the same. - It is suprising but we do have to use this as a rule in rarte cases.› + It is suprising but we do have to use this as a rule in rare cases.› -lemma same_constr: assumes "x=y" shows "P(x) = P(y)" - using assms by simp +lemma same_constr: assumes "x=y" shows "P(x) = P(y)" + using assms by simp text‹Equivalence relations are symmetric.› -lemma equiv_is_sym: assumes A1: "equiv(X,r)" and A2: "x,y r" +lemma equiv_is_sym: assumes A1: "equiv(X,r)" and A2: "x,y r" shows "y,x r" proof - - from A1 have "sym(r)" using equiv_def by simp + from A1 have "sym(r)" using equiv_def by simp then have "x y. x,y r y,x r" unfolding sym_def by fast - with A2 show "y,x r" by blast + with A2 show "y,x r" by blast qed (* In Isabelle/ZF conjunction associates to the right!. diff --git a/docs/IsarMathLib/Group_ZF_5.html b/docs/IsarMathLib/Group_ZF_5.html index 6753ac6..b75b529 100644 --- a/docs/IsarMathLib/Group_ZF_5.html +++ b/docs/IsarMathLib/Group_ZF_5.html @@ -63,53 +63,55 @@

Theory Group_ZF_5

"IsMorphism(G,P,F,f) g1G. g2G. f`(P`g1,g2) = F`f`(g1),f`(g2)" text‹A function $f:G\rightarrow H$ between algebraic structures - $(G,\cdot_G)$ and $(H,\cdot_H)$ with one operation (each) is a homomorphism is it has the morphism - property. › + $(G,\cdot_G)$ and $(H,\cdot_H)$ with one operation (each) is a homomorphism if + it has the morphism property. ›
definition "Homomor(f,G,P,H,F) f:GH IsMorphism(G,P,F,f)" text‹Now a lemma about the definition:› -lemma homomor_eq: +lemma homomor_eq: assumes "Homomor(f,G,P,H,F)" "g1G" "g2G" shows "f`(P`g1,g2) = F`f`(g1),f`(g2)" - using assms unfolding Homomor_def IsMorphism_def by auto + using assms unfolding Homomor_def IsMorphism_def by auto -text‹An endomorphism is a homomorphism from a group to the same group. In case -the group is abelian, it has a nice structure.› +text‹An endomorphism is a homomorphism from a group to the same group. + We define End(G,P)› as the set of endomorphisms for a given group. + As we show later when the group is abelian, the set of endomorphisms + with pointwise adddition and composition as multiplication forms a ring.› definition "End(G,P) {fGG. Homomor(f,G,P,G,P)}" text‹The defining property of an endomorphism written in notation used in group0› context:› -lemma (in group0) endomor_eq: assumes "f End(G,P)" "g1G" "g2G" +lemma (in group0) endomor_eq: assumes "f End(G,P)" "g1G" "g2G" shows "f`(g1g2) = f`(g1)f`(g2)" - using assms homomor_eq unfolding End_def by auto + using assms homomor_eq unfolding End_def by auto text‹A function that maps a group $G$ into itself and satisfies $f(g_1\cdot g2) = f(g_1)\cdot f(g_2)$ is an endomorphism.› -lemma (in group0) eq_endomor: +lemma (in group0) eq_endomor: assumes "f:GG" and "g1G. g2G. f`(g1g2)=f`(g1)f`(g2)" shows "f End(G,P)" - using assms unfolding End_def Homomor_def IsMorphism_def by simp + using assms unfolding End_def Homomor_def IsMorphism_def by simp text‹The set of endomorphisms forms a submonoid of the monoid of function from a set to that set under composition.› -lemma (in group0) end_composition: +lemma (in group0) end_composition: assumes "f1End(G,P)" "f2End(G,P)" shows "Composition(G)`f1,f2 End(G,P)" proof- - from assms have fun: "f1:GG" "f2:GG" unfolding End_def by auto + from assms have fun: "f1:GG" "f2:GG" unfolding End_def by auto then have "f1 O f2:GG" using comp_fun by auto - from assms fun(2) have + from assms fun(2) have "g1G. g2G. (f1 O f2)`(g1g2) = ((f1 O f2)`(g1))((f1 O f2)`(g2))" - using group_op_closed comp_fun_apply endomor_eq apply_type + using group_op_closed comp_fun_apply endomor_eq apply_type by simp - with fun f1 O f2:GG show ?thesis using eq_endomor func_ZF_5_L2 + with fun f1 O f2:GG show ?thesis using eq_endomor func_ZF_5_L2 by simp qed @@ -122,62 +124,63 @@

Theory Group_ZF_5

where "InEnd(F,G,P) restrict(F,End(G,P)×End(G,P))" text‹Endomoprhisms of a group form a monoid with composition as the binary operation, - with the identity map as the neutral element.› + and the identity map as the neutral element.› -theorem (in group0) end_comp_monoid: +theorem (in group0) end_comp_monoid: shows "IsAmonoid(End(G,P),InEnd(Composition(G),G,P))" and "TheNeutralElement(End(G,P),InEnd(Composition(G),G,P)) = id(G)" proof - let ?C0 = "InEnd(Composition(G),G,P)" - have fun: "id(G):GG" unfolding id_def by auto + have fun: "id(G):GG" unfolding id_def by auto { fix g h assume "gG""hG" then have "id(G)`(gh)=(id(G)`g)(id(G)`h)" using group_op_closed by simp } - with groupAssum fun have "id(G) End(G,P)" using eq_endomor by simp - moreover have A0: "id(G)=TheNeutralElement(G G, Composition(G))" + with groupAssum fun have "id(G) End(G,P)" using eq_endomor by simp + moreover have A0: "id(G)=TheNeutralElement(G G, Composition(G))" using Group_ZF_2_5_L2(2) by auto - ultimately have A1: "TheNeutralElement(G G, Composition(G)) End(G,P)" by auto - moreover have A2: "End(G,P) GG" unfolding End_def by blast - moreover have A3: "End(G,P) {is closed under} Composition(G)" - using end_composition unfolding IsOpClosed_def by blast + ultimately have A1: "TheNeutralElement(G G, Composition(G)) End(G,P)" by auto + moreover have A2: "End(G,P) GG" unfolding End_def by blast + moreover have A3: "End(G,P) {is closed under} Composition(G)" + using end_composition unfolding IsOpClosed_def by blast ultimately show "IsAmonoid(End(G,P),?C0)" using monoid0.group0_1_T1 Group_ZF_2_5_L2(1) unfolding monoid0_def by blast have "IsAmonoid(GG,Composition(G))" using Group_ZF_2_5_L2(1) by auto - with A0 A1 A2 A3 show "TheNeutralElement(End(G,P),?C0) = id(G)" + with A0 A1 A2 A3 show "TheNeutralElement(End(G,P),?C0) = id(G)" using group0_1_L6 by auto qed text‹The set of endomorphisms is closed under pointwise addition (derived from the group operation). This is so because the group is abelian.› -theorem (in abelian_group) end_pointwise_addition: - assumes "fEnd(G,P)" "gEnd(G,P)" "F = P {lifted to function space over} G" +theorem (in abelian_group) end_pointwise_addition: + assumes "fEnd(G,P)" "gEnd(G,P)" + defines "F P {lifted to function space over} G" shows "F`f,g End(G,P)" proof- - from assms(1,2) have fun: "f:GG" "gGG" unfolding End_def by simp_all - with assms(3) have fun2: "F`f,g:GG" + from assms(1,2) have fun: "f:GG" "gGG" unfolding End_def by simp_all + with assms(3) have fun2: "F`f,g:GG" using monoid0.Group_ZF_2_1_L0 group0_2_L1 by simp { fix g1 g2 assume "g1G" "g2G" - with isAbelian assms fun have + with isAbelian assms fun have "(F`f,g)`(g1g2) = (F`f,g)`(g1)(F`f,g)`(g2)" - using Group_ZF_2_1_L3 group_op_closed endomor_eq + using Group_ZF_2_1_L3 group_op_closed endomor_eq apply_type group0_4_L8(3) Group_ZF_2_1_L3 by simp - } with fun2 show ?thesis using eq_endomor by simp + } with fun2 show ?thesis using eq_endomor by simp qed text‹The value of a product of endomorphisms on a group element is the product of values.› -lemma (in abelian_group) end_pointwise_add_val: +lemma (in abelian_group) end_pointwise_add_val: assumes "fEnd(G,P)" "gEnd(G,P)" "xG" "F = P {lifted to function space over} G" shows "(InEnd(F,G,P)`f,g)`(x) = (f`(x))(g`(x))" - using assms group_oper_fun monoid.group0_1_L3B func_ZF_1_L4 + using assms group_oper_fun monoid.group0_1_L3B func_ZF_1_L4 unfolding End_def by simp -text‹The inverse of an abelian group is an endomorphism.› +text‹The operation of taking the inverse in an abelian group is an endomorphism.› -lemma (in abelian_group) end_inverse_group: +lemma (in abelian_group) end_inverse_group: shows "GroupInv(G,P) End(G,P)" using inverse_in_group group_inv_of_two isAbelian IsCommutative_def group0_2_T2 groupAssum Homomor_def @@ -186,47 +189,47 @@

Theory Group_ZF_5

text‹The set of homomorphisms of an abelian group is an abelian subgroup of the group of functions from a set to a group, under pointwise addition.› -theorem (in abelian_group) end_addition_group: +theorem (in abelian_group) end_addition_group: assumes "F = P {lifted to function space over} G" shows "IsAgroup(End(G,P),InEnd(F,G,P))" and "InEnd(F,G,P) {is commutative on} End(G,P)" proof- - have "End(G,P)0" using end_comp_monoid(1) monoid0.group0_1_L3A + have "End(G,P)0" using end_comp_monoid(1) monoid0.group0_1_L3A unfolding monoid0_def by auto moreover have "End(G,P) GG" unfolding End_def by auto - moreover from isAbelian assms(1) have "End(G,P){is closed under} F" - unfolding IsOpClosed_def using end_pointwise_addition by auto - moreover from groupAssum assms(1) have + moreover from isAbelian assms(1) have "End(G,P){is closed under} F" + unfolding IsOpClosed_def using end_pointwise_addition by auto + moreover from groupAssum assms(1) have "fEnd(G,P). GroupInv(GG,F)`(f) End(G,P)" - using monoid0.group0_1_L1 end_composition(1) end_inverse_group + using monoid0.group0_1_L1 end_composition(1) end_inverse_group func_ZF_5_L2 group0_2_T2 Group_ZF_2_1_L6 unfolding monoid0_def End_def by force ultimately show "IsAgroup(End(G,P),InEnd(F,G,P))" - using assms(1) group0.group0_3_T3 Group_ZF_2_1_T2 + using assms(1) group0.group0_3_T3 Group_ZF_2_1_T2 unfolding IsAsubgroup_def group0_def by blast - from assms(1) isAbelian show + from assms(1) isAbelian show "InEnd(F,G,P) {is commutative on} End(G,P)" using Group_ZF_2_1_L7 unfolding End_def IsCommutative_def by auto qed text‹Endomorphisms form a subgroup of the space of functions that map the group to itself.› -lemma (in abelian_group) end_addition_subgroup: +lemma (in abelian_group) end_addition_subgroup: shows "IsAsubgroup(End(G,P),P {lifted to function space over} G)" - using end_addition_group unfolding IsAsubgroup_def by simp + using end_addition_group unfolding IsAsubgroup_def by simp text‹The neutral element of the group of endomorphisms of a group is the constant function with value equal to the neutral element of the group.› -lemma (in abelian_group) end_add_neut_elem: +lemma (in abelian_group) end_add_neut_elem: assumes "F = P {lifted to function space over} G" shows "TheNeutralElement(End(G,P),InEnd(F,G,P)) = ConstantFunction(G,𝟭)" - using assms end_addition_subgroup lift_group_subgr_neut by simp + using assms end_addition_subgroup lift_group_subgr_neut by simp text‹For the endomorphisms of a group $G$ the group operation lifted to the function space over $G$ is distributive with respect to the composition operation. › -lemma (in abelian_group) distributive_comp_pointwise: +lemma (in abelian_group) distributive_comp_pointwise: assumes "F = P {lifted to function space over} G" shows "IsDistributive(End(G,P),InEnd(F,G,P),InEnd(Composition(G),G,P))" @@ -234,70 +237,70 @@

Theory Group_ZF_5

let ?CG = "Composition(G)" let ?CE = "InEnd(?CG,G,P)" let ?FE = "InEnd(F,G,P)" - { fix b c d assume AS: "bEnd(G,P)" "cEnd(G,P)" "dEnd(G,P)" - with assms(1) have ig1: "?CG `b, F ` c, d = b O (F`c,d)" + { fix b c d assume AS: "bEnd(G,P)" "cEnd(G,P)" "dEnd(G,P)" + with assms(1) have ig1: "?CG `b, F ` c, d = b O (F`c,d)" using monoid.Group_ZF_2_1_L0 func_ZF_5_L2 unfolding End_def by auto - with AS have ig2: "F`?CG`b,c,?CG `b,d = F`b O c,b O d" + with AS have ig2: "F`?CG`b,c,?CG `b,d = F`b O c,b O d" unfolding End_def using func_ZF_5_L2 by auto - from assms(1) AS have comp1fun: "(b O (F`c,d)):GG" + from assms(1) AS have comp1fun: "(b O (F`c,d)):GG" using monoid.Group_ZF_2_1_L0 comp_fun unfolding End_def by force - from assms(1) AS have comp2fun: "(F `b O c,b O d) : GG" + from assms(1) AS have comp2fun: "(F `b O c,b O d) : GG" using monoid.Group_ZF_2_1_L0 comp_fun unfolding End_def by force { fix g assume "gG" - with assms(1) AS(2,3) have "(b O (F`c,d))`(g) = b`((F`c,d)`(g))" + with assms(1) AS(2,3) have "(b O (F`c,d))`(g) = b`((F`c,d)`(g))" using comp_fun_apply monoid.Group_ZF_2_1_L0 unfolding End_def by force - with groupAssum assms(1) AS gG have + with groupAssum assms(1) AS gG have "(b O (F`c,d))`(g) = (F`b O c,b O d)`(g)" using Group_ZF_2_1_L3 apply_type homomor_eq comp_fun unfolding End_def by auto } hence "gG. (b O (F`c,d))`(g) = (F`b O c,b O d)`(g)" by simp - with comp1fun comp2fun ig1 ig2 have + with comp1fun comp2fun ig1 ig2 have "?CG`b,F`c, d = F`?CG`b , c,?CG`b,d" using func_eq by simp - moreover from AS(2,3) have "F`c, d = ?FE`c, d" + moreover from AS(2,3) have "F`c, d = ?FE`c, d" using restrict by simp - moreover from AS have "?CG`b,c = ?CE`b,c" and "?CG`b,d = ?CE`b,d" + moreover from AS have "?CG`b,c = ?CE`b,c" and "?CG`b,d = ?CE`b,d" using restrict by auto - moreover from assms AS have "?CG`b,F `c,d = ?CE`b, F`c, d" - using end_pointwise_addition by simp - moreover from AS have "F`?CG`b,c,?CG`b,d = ?FE`?CG `b,c,?CG `b,d" - using end_composition by simp - ultimately have eq1: "?CE`b, ?FE`c,d = ?FE `?CE`b,c,?CE`b,d" + moreover from assms AS have "?CG`b,F `c,d = ?CE`b, F`c, d" + using end_pointwise_addition by simp + moreover from AS have "F`?CG`b,c,?CG`b,d = ?FE`?CG `b,c,?CG `b,d" + using end_composition by simp + ultimately have eq1: "?CE`b, ?FE`c,d = ?FE `?CE`b,c,?CE`b,d" by simp - from assms(1) AS have - compfun: "(F`c,d) O b : GG" "F`c O b,d O b : GG" + from assms(1) AS have + compfun: "(F`c,d) O b : GG" "F`c O b,d O b : GG" using monoid.Group_ZF_2_1_L0 comp_fun unfolding End_def by auto { fix g assume "gG" - with AS(1) have bg: "b`(g) G" unfolding End_def using apply_type + with AS(1) have bg: "b`(g) G" unfolding End_def using apply_type by auto - from gG AS(1) have "((F`c,d) O b)`g = (F`c,d)`(b`(g))" + from gG AS(1) have "((F`c,d) O b)`g = (F`c,d)`(b`(g))" using comp_fun_apply unfolding End_def by force - also from assms(1) AS(2,3) bg have " = (c`(b`(g)))(d`(b`(g)))" + also from assms(1) AS(2,3) bg have " = (c`(b`(g)))(d`(b`(g)))" using Group_ZF_2_1_L3 unfolding End_def by auto - also from gG AS have " = ((c O b)`(g))((d O b)`(g))" + also from gG AS have " = ((c O b)`(g))((d O b)`(g))" using comp_fun_apply unfolding End_def by auto - also from assms(1) gG AS have " = (F`c O b,d O b)`g" + also from assms(1) gG AS have " = (F`c O b,d O b)`g" using comp_fun Group_ZF_2_1_L3 unfolding End_def by auto finally have "((F`c,d) O b)`(g) = (F`c O b,d O b)`(g)" by simp } hence "gG. ((F`c,d) O b)`(g) = (F`c O b,d O b)`(g)" by simp - with compfun have "(F`c,d) O b = F`c O b,d O b" + with compfun have "(F`c,d) O b = F`c O b,d O b" using func_eq by blast - with assms(1) AS have "?CG`F`c,d,b = F`?CG`c,b,?CG`d , b" + with assms(1) AS have "?CG`F`c,d,b = F`?CG`c,b,?CG`d , b" using monoid.Group_ZF_2_1_L0 func_ZF_5_L2 unfolding End_def by simp - moreover from AS(2,3) have "F`c, d = ?FE`c, d" + moreover from AS(2,3) have "F`c, d = ?FE`c, d" using restrict by simp - moreover from AS have "?CG`c,b = ?CE`c , b" "?CG`d,b = ?CE`d,b" + moreover from AS have "?CG`c,b = ?CE`c , b" "?CG`d,b = ?CE`d,b" using restrict by auto - moreover from assms AS have "?CG`F`c,d,b = ?CE`F`c,d,b" - using end_pointwise_addition by auto - moreover from AS have "F`?CG`c,b,?CG`d,b = ?FE`?CG`c,b,?CG`d,b" - using end_composition by auto + moreover from assms AS have "?CG`F`c,d,b = ?CE`F`c,d,b" + using end_pointwise_addition by auto + moreover from AS have "F`?CG`c,b,?CG`d,b = ?FE`?CG`c,b,?CG`d,b" + using end_composition by auto ultimately have "?CE`?FE`c,d,b = ?FE`?CE`c,b,?CE`d,b" by auto - with eq1 have "(?CE`b, ?FE`c, d = ?FE`?CE`b,c,?CE`b,d) + with eq1 have "(?CE`b, ?FE`c, d = ?FE`?CE`b,c,?CE`b,d) (?CE`?FE`c,d,b = ?FE`?CE`c,b,?CE`d,b)" by auto } then show ?thesis unfolding IsDistributive_def by auto @@ -306,11 +309,11 @@

Theory Group_ZF_5

text‹The endomorphisms of an abelian group is in fact a ring with the previous operations.› -theorem (in abelian_group) end_is_ring: +theorem (in abelian_group) end_is_ring: assumes "F = P {lifted to function space over} G" shows "IsAring(End(G,P),InEnd(F,G,P),InEnd(Composition(G),G,P))" - using assms end_addition_group end_comp_monoid(1) distributive_comp_pointwise + using assms end_addition_group end_comp_monoid(1) distributive_comp_pointwise unfolding IsAring_def by auto text‹The theorems proven in the ring0› context are valid in the abelian_group› context @@ -330,7 +333,7 @@

Theory Group_ZF_5

TheNeutralElement (End(G, P), InEnd(Composition(G),G,P)), TheNeutralElement (End(G, P), InEnd(Composition(G),G,P))"
"λx. InEnd(Composition(G),G,P)`x, x" - using end_is_ring unfolding ring0_def by blast + using end_is_ring unfolding ring0_def by blast subsection‹First isomorphism theorem› @@ -339,80 +342,80 @@

Theory Group_ZF_5

text‹A group homomorphism sends the neutral element to the neutral element.› -lemma image_neutral: +lemma image_neutral: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" shows "f`(TheNeutralElement(G,P)) = TheNeutralElement(H,F)" proof - let ?eG = "TheNeutralElement(G,P)" let ?eH = "TheNeutralElement(H,F)" - from assms(3) have ff: "f:GH" + from assms(3) have ff: "f:GH" unfolding Homomor_def by simp - have g: "?eG = P`?eG,?eG" "?eG G" - using assms(1) group0.group0_2_L2 unfolding group0_def by simp_all - with assms have "f`(?eG) = F`f`(?eG),f`(?eG)" + have g: "?eG = P`?eG,?eG" "?eG G" + using assms(1) group0.group0_2_L2 unfolding group0_def by simp_all + with assms have "f`(?eG) = F`f`(?eG),f`(?eG)" unfolding Homomor_def IsMorphism_def by force moreover - from ff g(2) have h: "f`(?eG) H" using apply_type + from ff g(2) have h: "f`(?eG) H" using apply_type by simp - with assms(2) have "f`(?eG) = F`f`(?eG),?eH" + with assms(2) have "f`(?eG) = F`f`(?eG),?eH" using group0.group0_2_L2 unfolding group0_def by simp ultimately have "F`f`(?eG),?eH = F`f`(?eG),f`(?eG)" by simp - with assms(2) h have + with assms(2) h have "LeftTranslation(H,F,f`(?eG))`(?eH) = LeftTranslation(H,F,f`(?eG))`(f`(?eG))" using group0.group0_5_L2(2) group0.group0_2_L2 unfolding group0_def by simp - moreover from assms(2) h have "LeftTranslation(H,F,f`(?eG))inj(H,H)" + moreover from assms(2) h have "LeftTranslation(H,F,f`(?eG))inj(H,H)" using group0.trans_bij(2) unfolding group0_def bij_def by simp - ultimately show ?thesis using h assms(2) group0.group0_2_L2 + ultimately show ?thesis using h assms(2) group0.group0_2_L2 unfolding inj_def group0_def by force qed text‹If $f:G\rightarrow H$ is a homomorphism, then it commutes with the inverse › -lemma image_inv: +lemma image_inv: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" "gG" shows "f`(GroupInv(G,P)`(g)) = GroupInv(H,F)`(f`(g))" proof - - from assms(3) have ff: "f:GH" + from assms(3) have ff: "f:GH" unfolding Homomor_def by simp - with assms(4) have im: "f`(g)H" using apply_type by simp - from assms(1,4) have inv: "GroupInv(G,P)`(g)G" + with assms(4) have im: "f`(g)H" using apply_type by simp + from assms(1,4) have inv: "GroupInv(G,P)`(g)G" using group0.inverse_in_group unfolding group0_def by simp - with ff have inv2: "f`(GroupInv(G,P)`g)H" using apply_type by simp - from assms(1,4) have + with ff have inv2: "f`(GroupInv(G,P)`g)H" using apply_type by simp + from assms(1,4) have "f`(TheNeutralElement(G,P)) = f`(P`g,GroupInv(G,P)`(g))" using group0.group0_2_L6 unfolding group0_def by simp - also from assms inv have " = F`f`(g),f`(GroupInv(G,P)`(g))" + also from assms inv have " = F`f`(g),f`(GroupInv(G,P)`(g))" unfolding Homomor_def IsMorphism_def by simp finally have "f`(TheNeutralElement(G,P)) = F`f`(g),f`(GroupInv(G,P)`(g))" by simp - with assms im inv2 show ?thesis + with assms im inv2 show ?thesis using group0.group0_2_L9 image_neutral unfolding group0_def by simp qed text‹The preimage of a subgroup is a subgroup› -theorem preimage_sub: +theorem preimage_sub: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" "IsAsubgroup(K,F)" shows "IsAsubgroup(f-``(K),P)" proof - - from assms(3) have ff: "f:GH" + from assms(3) have ff: "f:GH" unfolding Homomor_def by simp - from assms(2) have Hgr: "group0(H,F)" unfolding group0_def by simp - from assms(1) have Ggr: "group0(G,P)" unfolding group0_def by simp + from assms(2) have Hgr: "group0(H,F)" unfolding group0_def by simp + from assms(1) have Ggr: "group0(G,P)" unfolding group0_def by simp moreover - from assms ff Ggr Hgr have "TheNeutralElement(G,P) f-``(K)" + from assms ff Ggr Hgr have "TheNeutralElement(G,P) f-``(K)" using image_neutral group0.group0_3_L5 func1_1_L15 group0.group0_2_L2 by simp hence "f-``(K)0" by blast - moreover from ff have "f-``(K) G" using func1_1_L3 by simp - moreover from assms ff Ggr Hgr have "f-``(K) {is closed under} P" + moreover from ff have "f-``(K) G" using func1_1_L3 by simp + moreover from assms ff Ggr Hgr have "f-``(K) {is closed under} P" using func1_1_L15 group0.group0_3_L6 group0.group_op_closed func1_1_L15 unfolding IsOpClosed_def Homomor_def IsMorphism_def by simp - moreover from assms ff Ggr Hgr have + moreover from assms ff Ggr Hgr have "xf-``(K). GroupInv(G, P)`(x) f-``(K)" using group0.group0_3_T3A image_inv func1_1_L15 group0.inverse_in_group by simp @@ -421,42 +424,42 @@

Theory Group_ZF_5

text‹The preimage of a normal subgroup is normal› -theorem preimage_normal_subgroup: +theorem preimage_normal_subgroup: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" "IsAnormalSubgroup(H,F,K)" shows "IsAnormalSubgroup(G,P,f-``(K))" proof - - from assms(3) have ff: "f:GH" + from assms(3) have ff: "f:GH" unfolding Homomor_def by simp - from assms(2) have Hgr: "group0(H,F)" unfolding group0_def by simp - with assms(4) have "KH" using group0.group0_3_L2 + from assms(2) have Hgr: "group0(H,F)" unfolding group0_def by simp + with assms(4) have "KH" using group0.group0_3_L2 unfolding IsAnormalSubgroup_def by simp - from assms(1) have Ggr: "group0(G,P)" unfolding group0_def by simp - moreover from assms have "IsAsubgroup(f-``(K),P)" + from assms(1) have Ggr: "group0(G,P)" unfolding group0_def by simp + moreover from assms have "IsAsubgroup(f-``(K),P)" using preimage_sub unfolding IsAnormalSubgroup_def by simp moreover - { fix g assume gG: "gG" + { fix g assume gG: "gG" { fix h assume "h {P`g,P`h, GroupInv(G, P)`(g). h f-``(K)}" then obtain k where - k: "h = P`g,P`k,GroupInv(G, P)`(g)" "k f-``(K)" + k: "h = P`g,P`k,GroupInv(G, P)`(g)" "k f-``(K)" by auto - from k(1) have "f`(h) = f`(P`g,P`k, GroupInv(G, P)`(g))" by simp - moreover from ff k(2) have "kG" using vimage_iff + from k(1) have "f`(h) = f`(P`g,P`k, GroupInv(G, P)`(g))" by simp + moreover from ff k(2) have "kG" using vimage_iff unfolding Pi_def by blast - ultimately have f: "f`(h) = F`f`(g),F`f`(k),GroupInv(H,F)`(f`(g))" - using assms(1-4) Ggr gG group0.group_op_closed + ultimately have f: "f`(h) = F`f`(g),F`f`(k),GroupInv(H,F)`(f`(g))" + using assms(1-4) Ggr gG group0.group_op_closed group0.inverse_in_group image_inv homomor_eq by simp - from assms(1) ff Ggr gG k have "hG" using group0.group_op_closed + from assms(1) ff Ggr gG k have "hG" using group0.group_op_closed group0.inverse_in_group func1_1_L15 by simp - from assms(4) ff k(2) gG have "f`(k)K" "f`(g)H" and + from assms(4) ff k(2) gG have "f`(k)K" "f`(g)H" and "F`F`f`(g),f`(k),GroupInv(H,F)`(f`(g)) K" using func1_1_L15 apply_type unfolding IsAnormalSubgroup_def by auto - moreover from f`(k)K KH Hgr f f`(g)H have + moreover from f`(k)K KH Hgr f f`(g)H have "f`(h) = F`F`f`(g),f`(k),GroupInv(H,F)`(f`(g))" using group0.group_oper_assoc group0.inverse_in_group by auto ultimately have "f`(h) K" by simp - with ff hG have "h f-``(K)" using func1_1_L15 by simp + with ff hG have "h f-``(K)" using func1_1_L15 by simp } hence "{P`g,P`h,GroupInv(G,P)`(g). hf-``(K)} f-``(K)" by blast } hence "gG. {P`g, P`h, GroupInv(G, P)`(g). hf-``(K)} f-``(K)" @@ -466,50 +469,50 @@

Theory Group_ZF_5

text‹The kernel of an homomorphism is a normal subgroup.› -corollary kernel_normal_sub: +corollary kernel_normal_sub: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" shows "IsAnormalSubgroup(G,P,f-``{TheNeutralElement(H,F)})" - using assms preimage_normal_subgroup group0.trivial_normal_subgroup + using assms preimage_normal_subgroup group0.trivial_normal_subgroup unfolding group0_def by auto text‹The image of a subgroup is a subgroup› -theorem image_subgroup: +theorem image_subgroup: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" "f:GH" "IsAsubgroup(K,P)" shows "IsAsubgroup(f``K,F)" proof - - from assms(1,5) have sub: "KG" using group0.group0_3_L2 + from assms(1,5) have sub: "KG" using group0.group0_3_L2 unfolding group0_def by simp - from assms(2) have "group0(H,F)" unfolding group0_def by simp - moreover from assms(4) have "f``(K) H" - using func_imagedef sub apply_type by auto + from assms(2) have "group0(H,F)" unfolding group0_def by simp + moreover from assms(4) have "f``(K) H" + using func_imagedef sub apply_type by auto moreover - from assms(1,4,5) sub have "f`(TheNeutralElement(G,P)) f``(K)" + from assms(1,4,5) sub have "f`(TheNeutralElement(G,P)) f``(K)" using group0.group0_3_L5 func_imagedef unfolding group0_def by auto hence "f``(K) 0" by blast moreover { fix x assume "xf``(K)" - with assms(4) sub obtain q where q: "qK" "x=f`(q)" + with assms(4) sub obtain q where q: "qK" "x=f`(q)" using func_imagedef by auto - with assms(1-4) sub have "GroupInv(H,F)`(x) = f`(GroupInv(G,P)`q)" + with assms(1-4) sub have "GroupInv(H,F)`(x) = f`(GroupInv(G,P)`q)" using image_inv by auto - with assms(1,4,5) q(1) sub have "GroupInv(H,F)`(x) f``(K)" + with assms(1,4,5) q(1) sub have "GroupInv(H,F)`(x) f``(K)" using group0.group0_3_T3A func_imagedef unfolding group0_def by auto } hence "xf``(K). GroupInv(H, F)`(x) f``(K)" by auto moreover { fix x y assume "xf``(K)" "yf``(K)" - with assms(4) sub obtain qx qy where - q: "qxK" "x=f`(qx)" "qyK" "y=f`(qy)" + with assms(4) sub obtain qx qy where + q: "qxK" "x=f`(qx)" "qyK" "y=f`(qy)" using func_imagedef by auto - with assms(1-3) sub have "F`x,y = f`(P`qx,qy)" + with assms(1-3) sub have "F`x,y = f`(P`qx,qy)" using homomor_eq by force - moreover from assms(1,5) q(1,3) have "P`qx,qy K" + moreover from assms(1,5) q(1,3) have "P`qx,qy K" using group0.group0_3_L6 unfolding group0_def by simp ultimately have "F`x,y f``(K)" - using assms(4) sub func_imagedef by auto + using assms(4) sub func_imagedef by auto } then have "f``(K) {is closed under} F" unfolding IsOpClosed_def by simp ultimately show ?thesis using group0.group0_3_T3 by simp @@ -517,14 +520,14 @@

Theory Group_ZF_5

text‹The image of a group under a homomorphism is a subgroup of the target group.› -corollary image_group: +corollary image_group: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" shows "IsAsubgroup(f``(G),F)" proof - - from assms(1) have "restrict(P,G×G) = P" + from assms(1) have "restrict(P,G×G) = P" using group0.group_oper_fun restrict_domain unfolding group0_def by blast - with assms show ?thesis using image_subgroup + with assms show ?thesis using image_subgroup unfolding Homomor_def IsAsubgroup_def by simp qed @@ -532,132 +535,132 @@

Theory Group_ZF_5

that any group homomorphism $f:G\to H$ gives an isomorphism between a quotient group of $G$ and a subgroup of $H$.›
-theorem isomorphism_first_theorem: +theorem isomorphism_first_theorem: assumes "IsAgroup(G,P)" "IsAgroup(H,F)" "Homomor(f,G,P,H,F)" defines "r QuotientGroupRel(G,P,f-``{TheNeutralElement(H,F)})" and "𝒫 QuotientGroupOp(G,P,f-``{TheNeutralElement(H,F)})" shows "𝔣. Homomor(𝔣,G//r,𝒫,f``(G),restrict(F,(f``(G))×(f``(G)))) 𝔣bij(G//r,f``(G))" proof- let ?𝔣 = "{r``{g},f`(g). gG}" - from assms(3) have ff: "f:GH" + from assms(3) have ff: "f:GH" unfolding Homomor_def by simp - from assms(1-5) have "equiv(G,r)" + from assms(1-5) have "equiv(G,r)" using group0.Group_ZF_2_4_L3 kernel_normal_sub unfolding group0_def IsAnormalSubgroup_def by simp - from assms(4) ff have "?𝔣 Pow((G//r)×f``(G))" + from assms(4) ff have "?𝔣 Pow((G//r)×f``(G))" unfolding quotient_def using func_imagedef by auto moreover have "(G//r) domain(?𝔣)" unfolding domain_def quotient_def by auto moreover { fix x y t assume A: "x,y ?𝔣" "x,t ?𝔣" then obtain gy gr where "x, y=r``{gy},f`(gy)" "x, t=r``{gr},f`(gr)" and "grG" "gyG" by auto - hence B: "r``{gy}=r``{gr}" "y=f`(gy)" "t=f`(gr)" by auto - from ff gyG grG B(2,3) have "yH" "tH" + hence B: "r``{gy}=r``{gr}" "y=f`(gy)" "t=f`(gr)" by auto + from ff gyG grG B(2,3) have "yH" "tH" using apply_type by simp_all with equiv(G,r) grG r``{gy}=r``{gr} have "gy,grr" using same_image_equiv by simp - with assms(4) ff have + with assms(4) ff have "f`(P`gy,GroupInv(G,P)`(gr)) = TheNeutralElement(H,F)" unfolding QuotientGroupRel_def using func1_1_L15 by simp - with assms(1-4) B(2,3) gyG grG yH tH have "y=t" + with assms(1-4) B(2,3) gyG grG yH tH have "y=t" using image_inv group0.inverse_in_group group0.group0_2_L11A unfolding group0_def Homomor_def IsMorphism_def by auto } hence "x y. x,y ?𝔣 (z. x,z?𝔣 y=z)" by auto - ultimately have ff_fun: "?𝔣:G//rf``(G)" unfolding Pi_def function_def + ultimately have ff_fun: "?𝔣:G//rf``(G)" unfolding Pi_def function_def by auto - { fix a1 a2 assume AS: "a1G//r" "a2G//r" - then obtain g1 g2 where "g1G" "g2G" and a: "a1=r``{g1}" "a2=r``{g2}" + { fix a1 a2 assume AS: "a1G//r" "a2G//r" + then obtain g1 g2 where "g1G" "g2G" and a: "a1=r``{g1}" "a2=r``{g2}" unfolding quotient_def by auto - with assms equiv(G,r) have "𝒫`a1,a2,f`(P`g1,g2) ?𝔣" + with assms equiv(G,r) have "𝒫`a1,a2,f`(P`g1,g2) ?𝔣" using Group_ZF_2_4_L5A kernel_normal_sub group0.Group_ZF_2_2_L2 group0.group_op_closed unfolding QuotientGroupOp_def group0_def by auto - with ff_fun have eq: "?𝔣`(𝒫`a1,a2) = f`(P`g1,g2)" using apply_equality + with ff_fun have eq: "?𝔣`(𝒫`a1,a2) = f`(P`g1,g2)" using apply_equality by simp - from g1G g2G a have "a1,f`(g1) ?𝔣" and "a2,f`(g2) ?𝔣" by auto - with assms(1,2,3) ff_fun g1G g2G eq have "F`?𝔣`(a1),?𝔣`(a2) = ?𝔣`(𝒫`a1,a2)" + from g1G g2G a have "a1,f`(g1) ?𝔣" and "a2,f`(g2) ?𝔣" by auto + with assms(1,2,3) ff_fun g1G g2G eq have "F`?𝔣`(a1),?𝔣`(a2) = ?𝔣`(𝒫`a1,a2)" using apply_equality unfolding Homomor_def IsMorphism_def by simp - moreover from AS ff_fun have "?𝔣`(a1) f``(G)" "?𝔣`(a2) f``(G)" + moreover from AS ff_fun have "?𝔣`(a1) f``(G)" "?𝔣`(a2) f``(G)" using apply_type by auto ultimately have "restrict(F,f``(G)×f``(G))`?𝔣`(a1),?𝔣`(a2) = ?𝔣`(𝒫`a1,a2)" by simp } hence r: "a1G//r. a2G//r. restrict(F,f``(G)×f``(G))`?𝔣`(a1),?𝔣`(a2) = ?𝔣`(𝒫`a1,a2)" by simp - with ff_fun have HOM: "Homomor(?𝔣,G//r,𝒫,f``(G),restrict(F,(f``(G))×(f``(G))))" + with ff_fun have HOM: "Homomor(?𝔣,G//r,𝒫,f``(G),restrict(F,(f``(G))×(f``(G))))" unfolding Homomor_def IsMorphism_def by simp - from assms have G: "IsAgroup(G//r,𝒫)" and - H: "IsAgroup(f``(G), restrict(F,f``(G)×f``(G)))" + from assms have G: "IsAgroup(G//r,𝒫)" and + H: "IsAgroup(f``(G), restrict(F,f``(G)×f``(G)))" using Group_ZF_2_4_T1 kernel_normal_sub image_group unfolding IsAsubgroup_def by simp_all - { fix b1 b2 assume AS: "?𝔣`(b1) = ?𝔣`(b2)" "b1G//r" "b2G//r" - from G AS(3) have invb2: "GroupInv(G//r,𝒫)`(b2)G//r" + { fix b1 b2 assume AS: "?𝔣`(b1) = ?𝔣`(b2)" "b1G//r" "b2G//r" + from G AS(3) have invb2: "GroupInv(G//r,𝒫)`(b2)G//r" using group0.inverse_in_group unfolding group0_def by simp - with G AS(2) have I: "𝒫`b1,GroupInv(G//r,𝒫)`(b2)G//r" + with G AS(2) have I: "𝒫`b1,GroupInv(G//r,𝒫)`(b2)G//r" using group0.group_op_closed unfolding group0_def by auto - then obtain g where "gG" and gg: "𝒫`b1,GroupInv(G//r,𝒫)`(b2)=r``{g}" + then obtain g where "gG" and gg: "𝒫`b1,GroupInv(G//r,𝒫)`(b2)=r``{g}" unfolding quotient_def by auto from gG have "r``{g},f`(g) ?𝔣" by blast - with ff_fun gg have E: "?𝔣`(𝒫`b1,GroupInv(G//r,𝒫)`(b2)) = f`(g)" + with ff_fun gg have E: "?𝔣`(𝒫`b1,GroupInv(G//r,𝒫)`(b2)) = f`(g)" using apply_equality by simp - from ff_fun invb2 have pp: "?𝔣`(GroupInv(G//r,𝒫)`(b2))f``(G)" + from ff_fun invb2 have pp: "?𝔣`(GroupInv(G//r,𝒫)`(b2))f``(G)" using apply_type by simp - from ff_fun AS(2,3) have fff: "?𝔣`(b1) f``(G)" "?𝔣`(b2) f``(G)" + from ff_fun AS(2,3) have fff: "?𝔣`(b1) f``(G)" "?𝔣`(b2) f``(G)" using apply_type by simp_all - from fff(1) pp have - EE: "F`?𝔣`(b1),?𝔣`(GroupInv(G//r,𝒫)`(b2))= + from fff(1) pp have + EE: "F`?𝔣`(b1),?𝔣`(GroupInv(G//r,𝒫)`(b2))= restrict(F,f``(G)×f``(G))`?𝔣`(b1),?𝔣`(GroupInv(G//r,𝒫)`(b2))" by auto - from ff have "f``(G) H" using func1_1_L6(2) by simp - with fff have "?𝔣`(b1)H" "?𝔣`(b2)H" by auto - with assms(1-4) G H HOM ff_fun AS(1,3) fff(2) EE have + from ff have "f``(G) H" using func1_1_L6(2) by simp + with fff have "?𝔣`(b1)H" "?𝔣`(b2)H" by auto + with assms(1-4) G H HOM ff_fun AS(1,3) fff(2) EE have "TheNeutralElement(H,F) = restrict(F,f``(G)×f``(G))`?𝔣`(b1),?𝔣`(GroupInv(G//r,𝒫)`(b2))" using group0.group0_2_L6(1) restrict image_inv group0.group0_3_T1 image_group unfolding group0_def by simp - also from G H HOM AS(2,3) E have " = f`(g)" + also from G H HOM AS(2,3) E have " = f`(g)" using group0.inverse_in_group unfolding group0_def IsMorphism_def Homomor_def by simp finally have "TheNeutralElement(H,F) = f`(g)" by simp - with ff gG have "gf-``{TheNeutralElement(H,F)}" using func1_1_L15 + with ff gG have "gf-``{TheNeutralElement(H,F)}" using func1_1_L15 by simp - with assms gG gg have + with assms gG gg have "𝒫`b1,GroupInv(G//r,𝒫)`(b2) = TheNeutralElement(G//r,𝒫)" using group0.Group_ZF_2_4_L5E kernel_normal_sub unfolding group0_def by simp - with AS(2,3) G have "b1=b2" using group0.group0_2_L11A unfolding group0_def + with AS(2,3) G have "b1=b2" using group0.group0_2_L11A unfolding group0_def by auto - } with ff_fun have "?𝔣 inj(G//r,f``(G))" unfolding inj_def by blast + } with ff_fun have "?𝔣 inj(G//r,f``(G))" unfolding inj_def by blast moreover { fix m assume "m f``(G)" - with ff obtain g where "gG" "m=f`(g)" using func_imagedef by auto + with ff obtain g where "gG" "m=f`(g)" using func_imagedef by auto hence "r``{g},m ?𝔣" by blast - with ff_fun have "?𝔣`(r``{g})=m" using apply_equality by auto + with ff_fun have "?𝔣`(r``{g})=m" using apply_equality by auto with gG have "AG//r. ?𝔣`(A) = m" unfolding quotient_def by auto } ultimately have "?𝔣 bij(G//r,f``G)" unfolding bij_def surj_def - using ff_fun by blast - with HOM show ?thesis by blast + using ff_fun by blast + with HOM show ?thesis by blast qed text‹The inverse of a bijective homomorphism is an homomorphism. Meaning that in the previous result, the homomorphism we found is an isomorphism.› -theorem bij_homomor: +theorem bij_homomor: assumes "fbij(G,H)" "IsAgroup(G,P)" "Homomor(f,G,P,H,F)" shows "Homomor(converse(f),H,F,G,P)" proof - { fix h1 h2 assume "h1H" "h2H" - with assms(1) obtain g1 g2 where - g1: "g1G" "f`(g1)=h1" and g2: "g2G" "f`(g2)=h2" + with assms(1) obtain g1 g2 where + g1: "g1G" "f`(g1)=h1" and g2: "g2G" "f`(g2)=h2" unfolding bij_def surj_def by blast - with assms(2,3) have + with assms(2,3) have "converse(f)`(f`(P`g1,g2)) = converse(f)`(F`h1,h2)" using homomor_eq by simp - with assms(1,2) g1 g2 have + with assms(1,2) g1 g2 have "P`converse(f)`(h1),converse(f)`(h2) = converse(f)`(F`h1,h2)" using left_inverse group0.group_op_closed unfolding group0_def bij_def by auto - } with assms(1) show ?thesis using bij_converse_bij bij_is_fun + } with assms(1) show ?thesis using bij_converse_bij bij_is_fun unfolding Homomor_def IsMorphism_def by simp qed @@ -666,11 +669,11 @@

Theory Group_ZF_5

is an alternative notation for function defined as a set of pairs, see lemma
lambda_fun_alt› in theory func1.thy›.›
-lemma (in group0) quotient_map: +lemma (in group0) quotient_map: assumes "IsAnormalSubgroup(G,P,H)" defines "r QuotientGroupRel(G,P,H)" and "q λxG. QuotientGroupRel(G,P,H)``{x}" shows "Homomor(q,G,P,G//r,QuotientGroupOp(G,P,H))" - using groupAssum assms group_op_closed lam_funtype lamE EquivClass_1_L10 + using groupAssum assms group_op_closed lam_funtype lamE EquivClass_1_L10 Group_ZF_2_4_L3 Group_ZF_2_4_L5A Group_ZF_2_4_T1 unfolding IsAnormalSubgroup_def QuotientGroupOp_def Homomor_def IsMorphism_def by simp diff --git a/docs/IsarMathLib/MetricSpace_ZF.html b/docs/IsarMathLib/MetricSpace_ZF.html index cd5004e..a6f5313 100644 --- a/docs/IsarMathLib/MetricSpace_ZF.html +++ b/docs/IsarMathLib/MetricSpace_ZF.html @@ -16,7 +16,7 @@

Theory MetricSpace_ZF

This file is a part of IsarMathLib - a library of formalized mathematics written for Isabelle/Isar. - Copyright (C) 2020,2021 Slawomir Kolodynski + Copyright (C) 2020 - 2024 Slawomir Kolodynski This program is free software; Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: @@ -42,7 +42,7 @@

Theory MetricSpace_ZF

section ‹ Metric spaces › -theory MetricSpace_ZF imports Topology_ZF_1 OrderedLoop_ZF Lattice_ZF +theory MetricSpace_ZF imports Topology_ZF_1 OrderedLoop_ZF Lattice_ZF UniformSpace_ZF begin text‹A metric space is a set on which a distance between points is defined as a function @@ -79,45 +79,62 @@

Theory MetricSpace_ZF

definition "Disk(X,d,r,c,R) {xX. d`c,x,R StrictVersion(r)}" +text‹We define metric topology› as consisting of unions of open disks.› + +definition + "MetricTopology(X,L,A,r,d) {𝒜. 𝒜 Pow(cX. {Disk(X,d,r,c,R). RPositiveSet(L,A,r)})}" + text‹Next we define notation for metric spaces. We will reuse the additive notation defined in the loop1› locale adding only the assumption about $d$ being a pseudometric and notation for a disk centered at $c$ with radius $R$. Since for many theorems it is sufficient to assume the pseudometric axioms we will - assume in this context that the sets $d,X,L,A,r$ form a pseudometric raher than a metric.› + assume in this context that the sets $d,X,L,A,r$ form a pseudometric raher than a metric. + In the pmetric_space› context $\tau$ denotes the topology defined by the metric $d$. + Analogously to the notation defined in the topology0› context int(A)›, + cl(A)›, ∂A› will denote the interior, closure and boundary of the set $A$ + with respect to the metric topology. ›
locale pmetric_space = loop1 + fixes d and X - assumes pmetricAssum: "IsApseudoMetric(d,X,L,A,r)" + assumes pmetricAssum: "IsApseudoMetric(d,X,L,A,r)" fixes disk defines disk_def [simp]: "disk(c,R) Disk(X,d,r,c,R)" - + fixes pmettop ("τ") + defines pmettop [simp]: "τ MetricTopology(X,L,A,r,d)" + fixes interior ("int") + defines interior_def [simp]: "int(D) Interior(D,τ)" + fixes cl + defines cl_def [simp]: "cl(D) Closure(D,τ)" + text‹ The next lemma shows the definition of the pseudometric in the notation used in the - metric_space› context.› + pmetric_space› context.› -lemma (in pmetric_space) pmetric_properties: shows +lemma (in pmetric_space) pmetric_properties: shows "d: X×X L+" "xX. d`x,x = 𝟬" "xX.yX. d`x,y = d`y,x" "xX.yX.zX. d`x,z \<lsq> d`x,y \<ra> d`y,z" - using pmetricAssum unfolding IsApseudoMetric_def by auto + using pmetricAssum unfolding IsApseudoMetric_def by auto -text‹The values of the metric are in the loop.› +text‹The values of the metric are in the in the nonnegative set of the loop, + hence in the loop.› -lemma (in pmetric_space) pmetric_loop_valued: assumes "xX" "yX" +lemma (in pmetric_space) pmetric_loop_valued: assumes "xX" "yX" shows "d`x,y L+" "d`x,y L" proof - - from assms show "d`x,y L+" using pmetric_properties(1) apply_funtype + from assms show "d`x,y L+" using pmetric_properties(1) apply_funtype by simp then show "d`x,y L" using Nonnegative_def by auto qed text‹The definition of the disk in the notation used in the pmetric_space› context:› -lemma (in pmetric_space) disk_definition: shows "disk(c,R) = {xX. d`c,x \<ls> R}" +lemma (in pmetric_space) disk_definition: shows "disk(c,R) = {xX. d`c,x \<ls> R}" proof - have "disk(c,R) = Disk(X,d,r,c,R)" by simp - then have "disk(c,R) = {xX. d`c,x,R StrictVersion(r)}" unfolding Disk_def by simp + then have "disk(c,R) = {xX. d`c,x,R StrictVersion(r)}" + unfolding Disk_def by simp moreover have "xX. d`c,x,R StrictVersion(r) d`c,x \<ls> R" using def_of_strict_ver by simp ultimately show ?thesis by auto @@ -125,49 +142,74 @@

Theory MetricSpace_ZF

text‹If the radius is positive then the center is in disk.› -lemma (in pmetric_space) center_in_disk: assumes "cX" and "RL+" shows "c disk(c,R)" - using pmetricAssum assms IsApseudoMetric_def PositiveSet_def disk_definition by simp +lemma (in pmetric_space) center_in_disk: assumes "cX" and "RL+" shows "c disk(c,R)" + using pmetricAssum assms IsApseudoMetric_def PositiveSet_def disk_definition by simp -text‹A technical lemma that allows us to shorten some proofs: › +text‹A technical lemma that allows us to shorten some proofs: if $c$ is an element + of $X$ and $x$ is in disk with center $c$ and radius $R$ then $R$ is a positive element of + $L$ and $-d(x,y)+R$ is in the set of positive elements of the loop. › -lemma (in pmetric_space) radius_in_loop: assumes "cX" and "x disk(c,R)" +lemma (in pmetric_space) radius_in_loop: assumes "cX" and "x disk(c,R)" shows "RL" "𝟬\<ls>R" "RL+" "(\<rm>d`c,x \<ad> R) L+" proof - - from assms(2) have "xX" and "d`c,x \<ls> R" using disk_definition by auto - with assms(1) show "𝟬\<ls>R" using pmetric_properties(1) apply_funtype + from assms(2) have "xX" and "d`c,x \<ls> R" using disk_definition by auto + with assms(1) show "𝟬\<ls>R" using pmetric_properties(1) apply_funtype nonneg_definition loop_strict_ord_trans by blast then show "RL" and "RL+" using posset_definition PositiveSet_def by auto from d`c,x \<ls> R show "(\<rm>d`c,x \<ad> R) L+" using ls_other_side(2) by simp qed -text‹If a point $x$ is inside a disk $B$ and $m\leq R-d(c,x)$ then the disk centered +text‹If a point $x$ is inside a disk $B$ and $m\leq -d\langle c,x\rangle + R$ then the disk centered at the point $x$ and with radius $m$ is contained in the disk $B$. › -lemma (in pmetric_space) disk_in_disk: +lemma (in pmetric_space) disk_in_disk: assumes "cX" and "x disk(c,R)" and "m \<lsq> (\<rm>d`c,x \<ad> R)" shows "disk(x,m) disk(c,R)" proof fix y assume "y disk(x,m)" - then have "d`x,y \<ls> m" using disk_definition by simp - from assms(1,2) y disk(x,m) have "RL" "xX" "yX" - using radius_in_loop(1) disk_definition by auto - with assms(1) have "d`c,y \<lsq> d`c,x \<ra> d`x,y" using pmetric_properties(4) by simp - from assms(1) xX have "d`c,x L" - using pmetric_properties(1) apply_funtype nonneg_subset by auto - with d`x,y \<ls> m assms(3) have "d`c,x \<ra> d`x,y \<ls> d`c,x \<ra> (\<rm>d`c,x \<ad> R)" + then have "d`x,y \<ls> m" using disk_definition by simp + from assms(1,2) y disk(x,m) have "RL" "xX" "yX" + using radius_in_loop(1) disk_definition by auto + with assms(1) have "d`c,y \<lsq> d`c,x \<ra> d`x,y" using pmetric_properties(4) by simp + from assms(1) xX have "d`c,x L" + using pmetric_properties(1) apply_funtype nonneg_subset by auto + with d`x,y \<ls> m assms(3) have "d`c,x \<ra> d`x,y \<ls> d`c,x \<ra> (\<rm>d`c,x \<ad> R)" using loop_strict_ord_trans1 strict_ord_trans_inv(2) by blast with d`c,x L RL d`c,y \<lsq> d`c,x \<ra> d`x,y yX show "y disk(c,R)" - using lrdiv_props(6) loop_strict_ord_trans disk_definition by simp + using lrdiv_props(6) loop_strict_ord_trans disk_definition by simp +qed + +text‹A special case of disk_in_disk› where we set $m = -d\langle c,x\rangle + R$: + if $x$ is an element of a disk with center $c\in X$ + and radius $R$ then this disk contains the disk centered at $x$ and with radius + $-d\langle c,x\rangle + R$. › + +lemma (in pmetric_space) disk_in_disk1: + assumes "cX" and "x disk(c,R)" + shows "disk(x,\<rm>d`c,x \<ad> R) disk(c,R)" +proof - + from assms(2) have "RL" and "d`c,x L" + using disk_definition less_members by auto + with assms show ?thesis using left_right_sub_closed(1) loop_ord_refl disk_in_disk + by simp qed -text‹ If we assume that the order on the group makes the positive set a meet semi-lattice (i.e. - every two-element subset of $G_+$ has a greatest lower bound) then +text‹Assuming that two disks have the same center, closed disk with smaller radius + in contained in the (open) disk with a larger radius. › + +lemma (in pmetric_space) disk_radius_strict_mono: + assumes "r1 \<ls> r2" + shows "{yX. d`x,y \<lsq> r1} disk(x,r2)" + using assms loop_strict_ord_trans disk_definition by auto + +text‹ If we assume that the loop's order relation down-directs $L_+$ then the collection of disks centered at points of the space and with radii in the positive set - of the group satisfies the base condition. The meet semi-lattice assumption can be weakened - to "each two-element subset of $G_+$ has a lower bound in $G_+$", but we don't do that here. › + of the loop satisfies the base condition. The property that an order relation "down-directs" + a set is defined in Order_ZF› and means that every two-element subset of the set + has a lower bound in that set. › -lemma (in pmetric_space) disks_form_base: +lemma (in pmetric_space) disks_form_base: assumes "r {down-directs} L+" defines "B cX. {disk(c,R). RL+}" shows "B {satisfies the base condition}" @@ -176,23 +218,23 @@

Theory MetricSpace_ZF

fix x assume "xUV" have "WB. xW WUV" proof - - from assms(2) UB VB obtain cU cV RU RV + from assms(2) UB VB obtain cU cV RU RV where "cU X" "RU L+" "cV X" "RV L+" "U = disk(cU,RU)" "V = disk(cV,RV)" by auto with xUV have "x disk(cU,RU)" and "x disk(cV,RV)" by auto - then have "xX" "d`cU,x \<ls> RU" "d`cV,x \<ls> RV" using disk_definition by auto + then have "xX" "d`cU,x \<ls> RU" "d`cV,x \<ls> RV" using disk_definition by auto let ?mU = "\<rm> d`cU,x \<ad> RU" let ?mV = "\<rm> d`cV,x \<ad> RV" from cUX xdisk(cU,RU) cVX xdisk(cV,RV) have "?mUL+" and "?mVL+" - using radius_in_loop(4) by auto - with assms(1) obtain m where "m L+" "m \<lsq> ?mU" "m \<lsq> ?mV" + using radius_in_loop(4) by auto + with assms(1) obtain m where "m L+" "m \<lsq> ?mU" "m \<lsq> ?mV" unfolding DownDirects_def by auto let ?W = "disk(x,m)" from m L+ m \<lsq> ?mU m \<lsq> ?mV cU X x disk(cU,RU) cV X x disk(cV,RV) U = disk(cU,RU) V = disk(cV,RV) - have "?W UV" using disk_in_disk by blast - moreover from assms(2) xX m L+ have "?W B" and "x?W" using center_in_disk + have "?W UV" using disk_in_disk by blast + moreover from assms(2) xX m L+ have "?W B" and "x?W" using center_in_disk by auto ultimately show ?thesis by auto qed @@ -200,138 +242,445 @@

Theory MetricSpace_ZF

qed text‹Disks centered at points farther away than the sum of radii do not overlap. › -lemma (in pmetric_space) far_disks: + +lemma (in pmetric_space) far_disks: assumes "xX" "yX" "rx\<ra>ry \<lsq> d`x,y" - shows "disk(x,rx)disk(y,ry) = 0" + shows "disk(x,rx)disk(y,ry) = " proof - - { assume "disk(x,rx)disk(y,ry) 0" + { assume "disk(x,rx)disk(y,ry) " then obtain z where "z disk(x,rx)disk(y,ry)" by auto then have "zX" and "d`x,z \<ra> d`y,z \<ls> rx\<ra>ry" - using disk_definition add_ineq_strict by auto - moreover from assms(1,2) zX have "d`x,y \<lsq> d`x,z \<ra> d`y,z" - using pmetric_properties(3,4) by auto + using disk_definition add_ineq_strict by auto + moreover from assms(1,2) zX have "d`x,y \<lsq> d`x,z \<ra> d`y,z" + using pmetric_properties(3,4) by auto ultimately have "d`x,y \<ls> rx\<ra>ry" using loop_strict_ord_trans by simp - with assms(3) have False using loop_strict_ord_trans by auto + with assms(3) have False using loop_strict_ord_trans by auto } thus ?thesis by auto qed text‹ If we have a loop element that is smaller than the distance between two points, then we can separate these points with disks.› -lemma (in pmetric_space) disjoint_disks: +lemma (in pmetric_space) disjoint_disks: assumes "xX" "yX" "rx\<ls>d`x,y" shows "(\<rm>rx\<ad>(d`x,y)) L+" and "disk(x,rx)disk(y,\<rm>rx\<ad>(d`x,y)) = 0" proof - - from assms(3) show "(\<rm>rx\<ad>(d`x,y)) L+" + from assms(3) show "(\<rm>rx\<ad>(d`x,y)) L+" using ls_other_side posset_definition1 by simp - from assms(1,2,3) have "rxL" and "d`x,y L" - using less_members(1) pmetric_loop_valued(2) by auto + from assms(1,2,3) have "rxL" and "d`x,y L" + using less_members(1) pmetric_loop_valued(2) by auto then have "rx\<ra>(\<rm>rx\<ad>(d`x,y)) = d`x,y" using lrdiv_props(6) by simp - with assms(1,2) d`x,y L show "disk(x,rx)disk(y,\<rm>rx\<ad>(d`x,y)) = 0" - using loop_ord_refl far_disks by simp + with assms(1,2) d`x,y L show "disk(x,rx)disk(y,\<rm>rx\<ad>(d`x,y)) = 0" + using loop_ord_refl far_disks by simp +qed + +text‹The definition of metric topology written in notation of pmetric_space› context:› + +lemma (in pmetric_space) metric_top_def_alt: + defines "B cX. {disk(c,R). RL+}" + shows "τ = {A. A Pow(B)}" +proof - + from assms have "MetricTopology(X,L,A,r,d) = {A. A Pow(B)}" + unfolding MetricTopology_def by simp + thus ?thesis by simp qed -text‹Unions of disks form a topology, hence (pseudo)metric spaces are topological spaces. › +text‹If the order of the loop down-directs its set of positive elements + then the metric topology defined as collection of unions of (open) disks is indeed a topology. + Recall that in the pmetric_space› context $\tau$ denotes the metric topology. › + +theorem (in pmetric_space) pmetric_is_top: + assumes "r {down-directs} L+" + shows "τ {is a topology}" + using assms disks_form_base Top_1_2_T1 metric_top_def_alt by simp + +text‹If $r$ down-directs $L_+$ then the collection of open disks is a base for + the metric topology.› -theorem (in pmetric_space) pmetric_is_top: +theorem (in pmetric_space) disks_are_base: assumes "r {down-directs} L+" - defines "B cX. {disk(c,R). RL+}" - defines "T {A. A Pow(B)}" - shows "T {is a topology}" "B {is a base for} T" "T = X" + defines "B cX. {disk(c,R). RL+}" + shows "B {is a base for} τ" + using assms disks_form_base Top_1_2_T1 metric_top_def_alt by simp + +text‹If $r$ down-directs $L_+$ then $X$ is the carrier of metric topology.› + +theorem (in pmetric_space) metric_top_carrier: + assumes "r {down-directs} L+" shows "τ = X" proof - - from assms show "T {is a topology}" "B {is a base for} T" - using disks_form_base Top_1_2_T1 by auto - then have "T = B" using Top_1_2_L5 by simp - moreover have "B = X" + let ?B = "cX. {disk(c,R). RL+}" + from assms have "τ = ?B" + using disks_are_base Top_1_2_L5 by simp + moreover have "?B = X" proof - from assms(2) show "B X" using disk_definition by auto - { fix x assume "xX" - from assms(1) obtain R where "RL+" unfolding DownDirects_def by blast - with assms(2) xX have "x B" using center_in_disk by auto - } thus "X B" by auto + show "?B X" using disk_definition by auto + from assms show "X ?B" unfolding DownDirects_def using center_in_disk + by blast qed - ultimately show "T = X" by simp + ultimately show "τ = X" by simp qed +text‹Under the assumption that $r$ down-directs $L_+$ the propositions proven + in the topology0› context can be used in the pmetric_space› context.› + +lemma (in pmetric_space) topology0_valid_in_pmetric_space: + assumes "r {down-directs} L+" + shows "topology0(τ)" + using assms pmetric_is_top unfolding topology0_def by simp + +text‹If $r$ down-directs $L_+$ then disks are open in the metric topology.› + +lemma (in pmetric_space) disks_open: + assumes "cX" "RL+" "r {down-directs} L+" + shows "disk(c,R) τ" + using assms base_sets_open disks_are_base(1) pmetric_is_top + by blast + text‹To define the metric_space› locale we take the pmetric_space› and add the assumption of identity of indiscernibles.› locale metric_space = pmetric_space + - assumes ident_indisc: "xX. yX. d`x,y=𝟬 x=y" + assumes ident_indisc: "xX. yX. d`x,y=𝟬 x=y" text‹In the metric_space› locale $d$ is a metric.› lemma (in metric_space) d_metric: shows "IsAmetric(d,X,L,A,r)" - using pmetricAssum ident_indisc unfolding IsAmetric_def by simp + using pmetricAssum ident_indisc unfolding IsAmetric_def by simp text‹Distance of different points is greater than zero. › -lemma (in metric_space) dist_pos: assumes "xX" "yX" "xy" +lemma (in metric_space) dist_pos: assumes "xX" "yX" "xy" shows "𝟬\<ls>d`x,y" "d`x,y L+" proof - - from assms(1,2) have "d`x,y L+" - using pmetric_properties(1) apply_funtype by simp + from assms(1,2) have "d`x,y L+" + using pmetric_properties(1) apply_funtype by simp then have "𝟬 \<lsq> d`x,y" using Nonnegative_def by auto - with assms show "d`x,y L+" and "𝟬\<ls>d`x,y" - using ident_indisc posset_definition posset_definition1 by auto + with assms show "d`x,y L+" and "𝟬\<ls>d`x,y" + using ident_indisc posset_definition posset_definition1 by auto qed -text‹An ordered loop valued metric space is $T_2$ (i.e. Hausdorff).› +text‹If $r$ down-directs $L_+$ then the ordered loop valued metric space is $T_2$ (i.e. Hausdorff).› -theorem (in metric_space) metric_space_T2: - assumes "r {down-directs} L+" - defines "B cX. {disk(c,R). RL+}" - defines "T {A. A Pow(B)}" - shows "T {is T2}" +theorem (in metric_space) metric_space_T2: + assumes "r {down-directs} L+" + shows "τ {is T2}" proof - - { fix x y assume "xT" "yT" "xy" - from assms have "BT" using pmetric_is_top(2) base_sets_open by auto - moreover have "UB. VB. xU yV UV = 0" + let ?B = "cX. {disk(c,R). RL+}" + { fix x y assume "xτ" "yτ" "xy" + from assms have "?Bτ" using metric_top_def_alt by auto + have "U?B. V?B. xU yV UV = " proof - - let ?R = "d`x,y" - from assms have "T = X" using pmetric_is_top(3) by simp - with xT yT have "xX" "yX" by auto - with xy have "?RL+" using dist_pos by simp - with assms(2) xX yX have "disk(x,?R) B" and "disk(y,?R) B" + let ?R = "d`x,y" + from assms have "τ = X" using metric_top_carrier by simp + with xτ have "xX" by blast + from τ = X yτ have "yX" by blast + with xy xX have "?RL+" using dist_pos by simp + with xX yX have "disk(x,?R) ?B" and "disk(y,?R) ?B" by auto - { assume "disk(x,?R) disk(y,?R) = 0" - moreover from assms(2) xX yX ?RL+ have - "disk(x,?R)B" "disk(y,?R)B" "xdisk(x,?R)" "ydisk(y,?R)" - using center_in_disk by auto - ultimately have "UB. VB. xU yV UV = 0" by auto + { assume "disk(x,?R) disk(y,?R) = " + moreover from xX yX ?RL+ have + "disk(x,?R)?B" "disk(y,?R)?B" "xdisk(x,?R)" "ydisk(y,?R)" + using center_in_disk by auto + ultimately have "U?B. V?B. xU yV UV = 0" by blast } moreover { assume "disk(x,?R) disk(y,?R) 0" then obtain z where "z disk(x,?R)" and "z disk(y,?R)" by auto - then have "d`x,z \<ls> ?R" using disk_definition by simp + then have "d`x,z \<ls> ?R" using disk_definition by simp then have "𝟬 \<ls> \<rm>d`x,z\<ad>?R" using ls_other_side(1) by simp let ?r = "\<rm>d`x,z\<ad>?R" have "?r\<ls>?R" proof - from z disk(y,?R) xX yX have "zX" "xz" - using disk_definition pmetric_properties(3) by auto + using disk_definition pmetric_properties(3) by auto with xX yX zX show ?thesis - using pmetric_loop_valued dist_pos(1) subtract_pos(2) by simp + using pmetric_loop_valued dist_pos(1) add_subtract_pos(2) by simp qed with xX yX have "disk(x,?r)disk(y,\<rm>?r\<ad>?R) = 0" - by (rule disjoint_disks) + by (rule disjoint_disks) moreover from 𝟬\<ls>?r ?r\<ls>?R have "?rL+" "(\<rm>?r\<ad>?R) L+" using ls_other_side posset_definition1 by auto - with assms(2) xX yX have - "disk(x,?r)B" "disk(y,\<rm>?r\<ad>(d`x,y))B" and + with xX yX have + "disk(x,?r)?B" "disk(y,\<rm>?r\<ad>(d`x,y))?B" and "xdisk(x,?r)" "ydisk(y,\<rm>?r\<ad>(d`x,y))" - using center_in_disk by auto - ultimately have "UB. VB. xU yV UV = 0" by auto + using center_in_disk by auto + ultimately have "U?B. V?B. xU yV UV = 0" by blast } ultimately show ?thesis by auto qed - ultimately have "UT. VT. xU yV UV = 0" by auto + with ?Bτ have "Uτ. Vτ. xU yV UV = " by (rule exist2_subset) } then show ?thesis unfolding isT2_def by simp qed +subsection‹Uniform structures on metric spaces› + +text‹Each pseudometric space with pseudometric $d:X\times X\rightarrow L$ + supports a natural uniform structure, defined as supersets of the collection + of inverse images $U_c = d^{-1}([0,c])$, where $c>0$. › + +text‹In the following definition $X$ is the underlying space, $L$ is the loop (carrier), + $A$ is the loop operation, $r$ is an order relation compatible with $A$, + and $d$ is a pseudometric on $X$, valued in the ordered loop $L$. + With this we define the uniform gauge as the collection of inverse images + of the closed intervals $[0,c]$ as $c$ varies of the set of positive elements of $L$.› + +definition + "UniformGauge(X,L,A,r,d) {d-``({bNonnegative(L,A,r). b,c r}). cPositiveSet(L,A,r)}" + +text‹In the pmetric_space› context we will write UniformGauge(X,L,A,r,d)› as 𝔅›. › + +abbreviation (in pmetric_space) gauge ("𝔅") where "𝔅 UniformGauge(X,L,A,r,d)" + +text‹In notation defined in the pmetric_space› context we can write the uniform gauge + as $\{ d^{-1}(\{c\in L^+: c\leq b\}: b \in L_+ \}$. › + +lemma (in pmetric_space) uniform_gauge_def_alt: + shows "𝔅 = {d-``({cL+. c\<lsq>b}). bL+}" + unfolding UniformGauge_def by simp + +text‹Members of the uniform gauge are subsets of $X\times X$ i.e. relations on $X$. › + +lemma (in pmetric_space) uniform_gauge_relations: + assumes "B𝔅" shows "BX×X" + using assms uniform_gauge_def_alt pmetric_properties(1) func1_1_L3 + by force + +text‹If the distance between two points of $X$ is less or equal $b$, then + this pair of points is in $d^{-1}([0,b])$. › + +lemma (in pmetric_space) gauge_members: + assumes "xX" "yX" "d`x,y \<lsq> b" + shows "x,y d-``({cL+. c\<lsq>b})" + using assms pmetric_properties(1) apply_funtype func1_1_L15 + by simp + +text‹Suppose $b\in L^+$ (i.e. b is an element of the loop that is greater than the neutral element) + and $x\in X$. Then the image of the singleton set $\{ x\}$ by the relation + $B=\{ d^{-1}(\{c\in L^+: c\leq b\}$ is the set $\{ y\in X:d\langle x,y\rangle \leq b\}$, + i.e. the closed disk with center $x$ and radius $b$. Hence the the image $B\{ x\}$ contains + the open disk with center $x$ and radius $b$. › + +lemma (in pmetric_space) disk_in_gauge: + assumes "bL+" "xX" + defines "B d-``({cL+. c\<lsq>b})" + shows "B``{x} = {yX. d`x,y \<lsq> b}" and "disk(x,b) B``{x}" +proof - + from assms(1,3) have "BX×X" + using uniform_gauge_def_alt uniform_gauge_relations by auto + with assms(2,3) show "B``{x} = {yX. d`x,y \<lsq> b}" + using pmetric_properties(1) func1_1_L15 by force + then show "disk(x,b) B``{x}" using disk_definition by auto +qed + +text‹Gauges corresponding to larger elements of the loop are larger. › + +lemma (in pmetric_space) uniform_gauge_mono: + assumes "b1\<lsq>b2" shows "d-``({cL+. c\<lsq>b1}) d-``({cL+. c\<lsq>b2})" + using ordLoopAssum assms vimage_mono1 + unfolding IsAnOrdLoop_def IsPartOrder_def trans_def by auto + +text‹For any two sets of the form $d^{-1}([0,b])$ we can find a third one that is contained + in both. › + +lemma (in pmetric_space) gauge_1st_cond: + assumes "r {down-directs} L+" "B1𝔅" "B2𝔅" + shows "B3𝔅. B3B1B2" +proof - + from assms(2,3) obtain b1 b2 where "b1L+" "b2L+" and + I: "B1 = d-``({cL+. c\<lsq>b1})" "B2 = d-``({cL+. c\<lsq>b2})" + using uniform_gauge_def_alt by auto + from assms(1) b1L+ b2L+ obtain b3 where "b3L+" "b3\<lsq>b1" "b3\<lsq>b2" + unfolding DownDirects_def by auto + from I b3\<lsq>b1 b3\<lsq>b2 have "d-``({cL+. c\<lsq>b3}) B1B2" + using uniform_gauge_mono by blast + with b3L+ show ?thesis using uniform_gauge_def_alt + by auto +qed + +text‹Sets of the form $d^{-1}([0,b])$ contain the diagonal. › + +lemma (in pmetric_space) gauge_2nd_cond: assumes "B𝔅" shows "id(X)B" +proof + fix p assume "pid(X)" + then obtain x where "xX" and "p=x,x" by auto + then have "pX×X" and "d`(p) = 𝟬" using pmetric_properties(2) by simp_all + from assms obtain b where "bL+" and "B = d-``({cL+. c\<lsq>b})" + using uniform_gauge_def_alt by auto + with pX×X d`(p) = 𝟬 show "pB" + using posset_definition1 loop_zero_nonneg pmetric_properties(1) func1_1_L15 + by simp +qed + +text‹Sets of the form $d^{-1}([0,b])$ are symmetric.› + +lemma (in pmetric_space) gauge_symmetric: + assumes "B𝔅" shows "B = converse(B)" +proof - + from assms obtain b where "B = d-``({cL+. c\<lsq>b})" + using uniform_gauge_def_alt by auto + with pmetricAssum show ?thesis unfolding IsApseudoMetric_def + using symm_vimage_symm by auto +qed + +text‹A set of the form $d^{-1}([0,b])$ contains a symmetric set of this form.› + +corollary (in pmetric_space) gauge_3rd_cond: + assumes "B1𝔅" shows "B2𝔅. B2 converse(B1)" + using assms gauge_symmetric by auto + +text‹The collection of sets of the form $d^{-1}([0,b])$ for $b\in L_+$ + is contained of the powerset of $X\times X$.› + +lemma (in pmetric_space) gauge_5thCond: shows "𝔅Pow(X×X)" + using uniform_gauge_def_alt pmetric_properties(1) func1_1_L3 by force + +text‹If the set of positive values is non-empty, then there are sets + of the form $d^{-1}([0,b])$ for $b>0$.› + +lemma (in pmetric_space) gauge_6thCond: + assumes "L+" shows "𝔅" using assms uniform_gauge_def_alt by simp + +text‹The remaining 4th condition for the sets of the form $d^{-1}([0,b])$ + to be a uniform base (or a fundamental system of entourages) cannot be proven + without additional assumptions in the context of ordered loop valued metrics. + To see that consider the example + of natural numbers with the metric $d\langle x,y \rangle = |x-y|$, where we think + of $d$ as valued in the nonnegative set of ordered group of integers. + Now take the set $B_1 = d^{-1}([0,1]) = d^{-1}(\{ 0,1\} )$. Then the set $B_1 \circ B_1$ + is strictly larger than $B_1$, but there is no smaller set $B_2$ we can take so that + $B_2 \circ B_2 \subseteq B_1$. + One condition that is sufficient is that for every $b_1 >0$ there is a $b_2 >0$ + such that $b_2 + b_2 \leq b_1 $. I have not found a standard name for this property, for now + we will use the name IsHalfable›. › + +definition + "IsHalfable(L,A,r) b1PositiveSet(L,A,r). b2PositiveSet(L,A,r). A`b2,b2,b1 r" + +text‹The property of halfability written in the notation used in the pmetric_space› context.› + +lemma (in pmetric_space) is_halfable_def_alt: + assumes "IsHalfable(L,A,r)" "b1L+" + shows "b2L+. b2\<ra>b2 \<lsq> b1" + using assms unfolding IsHalfable_def by simp + +text‹If the loop order is halfable then for every set $B_1$ of the form $d^{-1}([0,b_1])$ + for some $b_1>0$ we can find another one $B_2 = d^{-1}([0,b_2])$ such that $B_2$ + composed with itself is contained in $B_1$.› + +lemma (in pmetric_space) gauge_4thCond: + assumes "IsHalfable(L,A,r)" "B1𝔅" shows "B2𝔅.B2𝔅. B2 O B2 B1" +proof - + from assms(2) obtain b1 where "b1L+" and "B1 = d-``({cL+. c\<lsq>b1})" + using uniform_gauge_def_alt by auto + from assms(1) b1L+ obtain b2 where "b2L+" and "b2\<ra>b2 \<lsq> b1" + using is_halfable_def_alt by auto + let ?B2 = "d-``({cL+. c\<lsq>b2})" + from b2L+ have "?B2𝔅" unfolding UniformGauge_def by auto + { fix p assume "p ?B2 O ?B2" + with ?B2𝔅 obtain x y where "xX" "yX" and "p=x,y" + using gauge_5thCond by blast + from p ?B2 O ?B2 p=x,y obtain z where + "x,z ?B2" and "z,y ?B2" + using rel_compdef by auto + with ?B2𝔅 have "zX" using gauge_5thCond by auto + from x,z ?B2 z,y ?B2 have "d`x,z \<ra> d`z,y \<lsq> b2\<ra> b2" + using pmetric_properties(1) func1_1_L15 add_ineq by simp + with b2\<ra>b2 \<lsq> b1 have "d`x,z \<ra> d`z,y \<lsq> b1" + using loop_ord_trans by simp + with xX yX zX p=x,y B1 = d-``({cL+. c\<lsq>b1}) have "pB1" + using pmetric_properties(4) loop_ord_trans gauge_members by blast + } hence "?B2 O ?B2 B1" by auto + with ?B2𝔅 show ?thesis by auto +qed + +text‹If $X$ and $L_+$ are not empty, the order relation $r$ + down-directs $L_+$, and the loop order is halfable, then $\mathfrak{B}$ + (which in the pmetric_space› context is an abbreviation for + $\{ d^{-1}(\{c\in L^+: c\leq b\}: b \in L_+ \}$) + is a fundamental system of entourages, hence its supersets + form a uniformity on $X$ and hence those supersets define a topology on $X$.› + +theorem (in pmetric_space) metric_gauge_base: + assumes "X" "L+" "r {down-directs} L+" "IsHalfable(L,A,r)" + shows + "𝔅 {is a uniform base on} X" + "Supersets(X×X,𝔅) {is a uniformity on} X" + "UniformTopology(Supersets(X×X,𝔅),X) {is a topology}" + "UniformTopology(Supersets(X×X,𝔅),X) = X" + using assms gauge_1st_cond gauge_2nd_cond gauge_3rd_cond + gauge_4thCond gauge_5thCond gauge_6thCond uniformity_base_is_base + uniform_top_is_top + unfolding IsUniformityBaseOn_def by simp_all + +text‹At this point we know that a pseudometric induces two topologies: one consisting of unions + of open disks (the metric topology) and second one being the uniform topology derived + from the uniformity generated the fundamental system of entourages (the base uniformity) + of the sets of the form $d^{-1}([0,b])$ for $b>0$. + The next theorem states that if $X$ and $L_+$ are not empty, $r$ down-directs $L_+$, + and the loop order is halfable, then these two topologies are in fact the same. + Recall that in the pmetric_space› context $\tau$ denotes the metric topology. › + +theorem (in pmetric_space) metric_top_is_uniform_top: + assumes "X" "L+" "r {down-directs} L+" "IsHalfable(L,A,r)" + shows "τ = UniformTopology(Supersets(X×X,𝔅),X)" +proof + let = "Supersets(X×X,𝔅)" + from assms have " {is a uniformity on} X" using metric_gauge_base + by simp + let ?T = "UniformTopology(,X)" + { fix U assume "U?T" + then have "UPow(X)" and I: "xU. U{V``{x}. V}" + unfolding UniformTopology_def by auto + { fix x assume "xU" + with I obtain A where "A" and "U = A``{x}" + by auto + from xU U?T have "x?T" by auto + with assms have "xX" using metric_gauge_base(4) by simp + from A obtain B where "B𝔅" and "BA" + unfolding Supersets_def by auto + from B𝔅 obtain b where "bL+" and "B = d-``({cL+. c\<lsq>b})" + using uniform_gauge_def_alt by auto + with xX BA U = A``{x} have "disk(x,b) U" + using disk_in_gauge(2) by blast + with assms(3) xX bL+ have "Vτ. xV VU" + using disks_open center_in_disk by force + } with assms(3) have "Uτ" + using topology0_valid_in_pmetric_space topology0.open_neigh_open + by simp + } thus "?T τ" by auto + let ?𝒟 = "cX. {disk(c,R). RL+}" + { fix U assume "U ?𝒟" + then obtain c b where "cX" "bL+" "U = disk(c,b)" + by blast + { fix x assume "xU" + let ?b1 = "\<rm>d`c,x \<ad> b" + from xU cX U = disk(c,b) have + "xX" "xdisk(c,b)" "disk(x,?b1) U" "?b1 L+" + using disk_in_disk1 disk_definition radius_in_loop(4) by simp_all + with assms(4) obtain b2 where "b2L+" and "b2\<ra>b2 \<lsq> ?b1" + using is_halfable_def_alt by auto + let ?D = "{yX. d`x,y \<lsq> b2}" + from b2L+ b2\<ra>b2 \<lsq> ?b1 have "?D disk(x,?b1)" + using posset_definition1 positive_subset add_subtract_pos(3) + loop_strict_ord_trans1 disk_radius_strict_mono by blast + let ?B = "d-``({cL+. c\<lsq>b2})" + from b2L+ have "?B𝔅" using uniform_gauge_def_alt by auto + then have "?B" using uniform_gauge_relations superset_gen + by simp + from b2L+ xX ?D disk(x,?b1) disk(x,?b1) U have "?B``{x} U" + using disk_in_gauge(1) by auto + with ?B have "W. W``{x} U" by auto + } with U = disk(c,b) {is a uniformity on} X have "U ?T" + using disk_definition uniftop_def_alt1 by auto + } hence "?𝒟 ?T" by auto + with assms show "τ?T" + using disks_are_base(1) metric_gauge_base(3) base_smallest_top + by simp +qed + end diff --git a/docs/IsarMathLib/MetricSpace_ZF_1.html b/docs/IsarMathLib/MetricSpace_ZF_1.html index d4c5384..fc3c59e 100644 --- a/docs/IsarMathLib/MetricSpace_ZF_1.html +++ b/docs/IsarMathLib/MetricSpace_ZF_1.html @@ -58,79 +58,110 @@

Theory MetricSpace_ZF_1

positive numbers, absolute value etc. For metric spaces we reuse the notation defined there.›
text‹The pmetric_space1› locale extends the reals› locale, adding the carrier $X$ - of the metric space and the metric $\mathfrak{d}$ to the context, together with the assumption - that $\mathfrak{d}:X\times X \rightarrow \mathbb{R}$ is a pseudo metric. + of the metric space and the metric $\mathcal{d}$ to the context, together with the assumption + that $\mathcal{d}:X\times X \rightarrow \mathbb{R}^+$ is a pseudo metric. + We choose to denote the disk in $X$ with center $c$ and radius $r$ as ball(c,r)› + As in the pmetric_space› locale we define the $\tau$ to be the metric topology, i.e. + the topology induced by the (real valued) pseudometric $\mathcal{d}$. An alternative would be to define the pmetric_space1› as an extension of the pmetric_space1› context, but that is in turn an extension of the loop1› locale that defines notation for left and right division which which do not want in the context of real numbers. › locale pmetric_space1 = reals + fixes X and 𝖽 - assumes pmetricAssum: "IsApseudoMetric(𝖽,X,,Add,ROrd)" + assumes pmetricAssum: "IsApseudoMetric(𝖽,X,,Add,ROrd)" fixes ball defines ball_def [simp]: "ball(c,r) Disk(X,𝖽,ROrd,c,r)" + fixes pmettop ("τ") + defines pmettop [simp]: "τ MetricTopology(X,,Add,ROrd,𝖽)" + fixes interior ("int") + defines interior_def [simp]: "int(D) Interior(D,τ)" + fixes cl + defines cl_def [simp]: "cl(D) Closure(D,τ)" text‹The propositions proven in the pmetric_space› context defined in Metric_Space_ZF› theory are valid in the pmetric_space1› context. › -lemma (in pmetric_space1) pmetric_space_pmetric_space1_valid: +lemma (in pmetric_space1) pmetric_space_pmetric_space1_valid: shows "pmetric_space(,Add,ROrd,𝖽,X)" unfolding pmetric_space_def pmetric_space_axioms_def loop1_def - using pmetricAssum reals_loop by simp - -text‹It is convenient to have the collection of all open balls in given (p) metrics defined - as a separate notion.› - -definition (in pmetric_space1) Open_Balls - where "Open_Balls cX. {ball(c,r). r +}" - -text‹Topology on a metric space is defined as the collection of sets that are unions - of open balls of the (p)metric. › - -definition (in pmetric_space1) Metric_Topology - where "Metric_Topology {A. A Pow(Open_Balls)}" + using pmetricAssum reals_loop by simp + +text‹The context pmetric_space1› is a special case of context pmetric_space› + where the fixed objects in pmetric_space› map to (in the order defined in pmetric_space›) + the set of real numbers, real addition, the order relation on reals, + the strict order relation on reals, the set of non-negative reals and + the set of positive reals. The metrics $d$ maps to the real metrics + 𝖽›, the carrier of the metric space $X$ is still $X$, and the disk›s from pmetric_space› + are now called ball›s in pmetric_space1›. The notation for right and left division from + pmetric_space1› is not used in pmetric_space›. › + +sublocale pmetric_space1 < pmetric_space + "" Add ROrd "𝟬" realadd lesseq sless nonnegative positiveset + "λx y. LeftDiv(,Add)`x,y" + "λx y. RightDiv(,Add)`y,x" + "𝖽" X ball + using pmetric_space_pmetric_space1_valid by simp_all text‹The metric_space1› locale (context) specializes the the pmetric_space1› context by adding the assumption of identity of indiscernibles. › locale metric_space1 = pmetric_space1 + - assumes ident_indisc: "xX. yY. 𝖽`x,y = 𝟬 x=y" + assumes ident_indisc: "xX. yY. 𝖽`x,y = 𝟬 x=y" text‹The propositions proven in the metric_space› context defined in Metric_Space_ZF› theory are valid in the metric_space1› context. › -lemma (in metric_space1) metric_space_metric_space1_valid: +lemma (in metric_space1) metric_space_metric_space1_valid: shows "metric_space(,Add,ROrd,𝖽,X)" unfolding metric_space_def metric_space_axioms_def - using pmetric_space_pmetric_space1_valid ident_indisc + using pmetric_space_pmetric_space1_valid ident_indisc by simp +text‹The metric_space1› context is a special case of the metric_space› context, + with fixed objects mapping the same as in the mapping between pmetric_space1› + and pmetric_space› above. › + +sublocale metric_space1 < metric_space + "" Add ROrd "𝟬" realadd lesseq sless nonnegative positiveset + "λx y. LeftDiv(,Add)`x,y" + "λx y. RightDiv(,Add)`y,x" + "𝖽" X ball +proof + from ident_indisc show "xX. yX. 𝖽 ` x, y = TheNeutralElement(, Add) x = y" + by simp +qed + subsection‹Metric spaces are Hausdorff as topological spaces› text‹The usual (real-valued) metric spaces are a special case of ordered loop valued metric spaces defined in the MetricSpace_ZF› theory, hence they are $T_2$ - as topological spaces. › + as topological spaces. Below we repeat the major theorems of MetricSpace_ZF› theory + specialized the standard setting of real valued metrics. › text‹Since in the pmetric_space1› context $\mathfrak{d}$ is a pseudometrics - the (p)metric topology as defined above is indeed a topology, - the set of open balls is the base of that topology and the carrier of the - topology is the underlying (p)metric space carrier $X$. › - -theorem (in pmetric_space1) rpmetric_is_top: - shows - "Metric_Topology {is a topology}" - "Open_Balls {is a base for} Metric_Topology" - " Metric_Topology = X" - unfolding Open_Balls_def Metric_Topology_def - using rord_down_directs pmetric_space_pmetric_space1_valid - pmetric_space.pmetric_is_top by simp_all - -text‹The topology generated by a metric is Hausdorff (i.e. $T_2$). › - -theorem (in metric_space1) rmetric_space_T2: shows "Metric_Topology {is T2}" - unfolding Open_Balls_def Metric_Topology_def - using rord_down_directs metric_space_metric_space1_valid - metric_space.metric_space_T2 by simp + the (real valued) metric topology indeed a topology. › + +theorem (in pmetric_space1) rpmetric_is_top: + shows "τ {is a topology}" + using rord_down_directs pmetric_is_top by simp + +text‹The collection of open disks (caled ball›s in the pmetric_space1› context + is a base for the (real valued) metric topology.› + +theorem (in pmetric_space1) rdisks_are_base: + shows "(cX. {ball(c,R). R+}) {is a base for} τ" + using rord_down_directs disks_are_base by simp + +text‹$X$ is the carrier of the (real valued) metric topology.› + +theorem (in pmetric_space1) rmetric_top_carrier: shows "τ = X" + using rord_down_directs metric_top_carrier by simp + +text‹The topology generated by a (real valued) metric is Hausdorff (i.e. $T_2$). › + +theorem (in metric_space1) rmetric_space_T2: shows "τ {is T2}" + using rord_down_directs metric_space_T2 by simp end diff --git a/docs/IsarMathLib/Order_ZF.html b/docs/IsarMathLib/Order_ZF.html index 4387bb8..02fd10a 100644 --- a/docs/IsarMathLib/Order_ZF.html +++ b/docs/IsarMathLib/Order_ZF.html @@ -317,32 +317,32 @@

Theory Order_ZF

split Order_ZF_2_L1› into two lemmas.› lemma Order_ZF_2_L1A: assumes "x Interval(r,a,b)" - shows " a,x r" " x,b r" + shows "a,x r" "x,b r" using assms Order_ZF_2_L1 by auto textOrder_ZF_2_L1›, implication from right to left.› -lemma Order_ZF_2_L1B: assumes " a,x r" " x,b r" +lemma Order_ZF_2_L1B: assumes "a,x r" "x,b r" shows "x Interval(r,a,b)" - using assms Order_ZF_2_L1 by simp + using assms Order_ZF_2_L1 by simp text‹If the relation is reflexive, the endpoints belong to the interval.› -lemma Order_ZF_2_L2: assumes "refl(X,r)" - and "aX" "bX" and " a,b r" +lemma Order_ZF_2_L2: assumes "refl(X,r)" + and "aX" "bX" and "a,b r" shows "a Interval(r,a,b)" "b Interval(r,a,b)" - using assms refl_def Order_ZF_2_L1 by auto + using assms refl_def Order_ZF_2_L1 by auto text‹Under the assumptions of Order_ZF_2_L2›, the interval is nonempty.› -lemma Order_ZF_2_L2A: assumes "refl(X,r)" - and "aX" "bX" and " a,b r" +lemma Order_ZF_2_L2A: assumes "refl(X,r)" + and "aX" "bX" and "a,b r" shows "Interval(r,a,b) 0" proof - - from assms have "a Interval(r,a,b)" + from assms have "a Interval(r,a,b)" using Order_ZF_2_L2 by simp then show "Interval(r,a,b) 0" by auto qed @@ -351,19 +351,19 @@

Theory Order_ZF

only need trasitivity for this to be true.›
lemma Order_ZF_2_L3: - assumes A1: "trans(r)" and A2:" a,br" " b,cr" " c,dr" + assumes A1: "trans(r)" and A2:"a,br" "b,cr" "c,dr" shows "Interval(r,b,c) Interval(r,a,d)" proof - fix x assume A3: "x Interval(r, b, c)" - note A1 - moreover from A2 A3 have " a,b r b,x r" using Order_ZF_2_L1A + fix x assume A3: "x Interval(r, b, c)" + note A1 + moreover from A2 A3 have "a,b r b,x r" using Order_ZF_2_L1A by simp - ultimately have T1: " a,x r" by (rule Fol1_L3) - note A1 - moreover from A2 A3 have " x,c r c,d r" using Order_ZF_2_L1A + ultimately have T1: "a,x r" by (rule Fol1_L3) + note A1 + moreover from A2 A3 have "x,c r c,d r" using Order_ZF_2_L1A by simp - ultimately have " x,d r" by (rule Fol1_L3) - with T1 show "x Interval(r,a,d)" using Order_ZF_2_L1B + ultimately have "x,d r" by (rule Fol1_L3) + with T1 show "x Interval(r,a,d)" using Order_ZF_2_L1B by simp qed @@ -371,33 +371,33 @@

Theory Order_ZF

endpoints consists only of that endpoint.›
lemma Order_ZF_2_L4: - assumes A1: "refl(X,r)" and A2: "antisym(r)" and A3: "aX" + assumes A1: "refl(X,r)" and A2: "antisym(r)" and A3: "aX" shows "Interval(r,a,a) = {a}" proof - from A1 A3 have " a,a r" using refl_def by simp - with A1 A3 show "{a} Interval(r,a,a)" using Order_ZF_2_L2 by simp - from A2 show "Interval(r,a,a) {a}" using Order_ZF_2_L1A Fol1_L4 + from A1 A3 have " a,a r" using refl_def by simp + with A1 A3 show "{a} Interval(r,a,a)" using Order_ZF_2_L2 by simp + from A2 show "Interval(r,a,a) {a}" using Order_ZF_2_L1A Fol1_L4 by fast qed text‹For transitive relations the endpoints have to be in the relation for the interval to be nonempty.› -lemma Order_ZF_2_L5: assumes A1: "trans(r)" and A2: " a,b r" +lemma Order_ZF_2_L5: assumes A1: "trans(r)" and A2: " a,b r" shows "Interval(r,a,b) = 0" proof - { assume "Interval(r,a,b)0" then obtain x where "x Interval(r,a,b)" by auto - with A1 A2 have False using Order_ZF_2_L1A Fol1_L3 by fast + with A1 A2 have False using Order_ZF_2_L1A Fol1_L3 by fast } thus ?thesis by auto qed text‹If a relation is defined on a set, then intervals are subsets of that set.› -lemma Order_ZF_2_L6: assumes A1: "r X×X" +lemma Order_ZF_2_L6: assumes A1: "r X×X" shows "Interval(r,a,b) X" - using assms Interval_def by auto + using assms Interval_def by auto subsection‹Bounded sets› @@ -405,59 +405,59 @@

Theory Order_ZF

text‹For reflexive relations singletons are bounded.› -lemma Order_ZF_3_L1: assumes "refl(X,r)" and "aX" +lemma Order_ZF_3_L1: assumes "refl(X,r)" and "aX" shows "IsBounded({a},r)" - using assms refl_def IsBoundedAbove_def IsBoundedBelow_def + using assms refl_def IsBoundedAbove_def IsBoundedBelow_def IsBounded_def by auto text‹Sets that are bounded above are contained in the domain of the relation.› -lemma Order_ZF_3_L1A: assumes "r X×X" +lemma Order_ZF_3_L1A: assumes "r X×X" and "IsBoundedAbove(A,r)" - shows "AX" using assms IsBoundedAbove_def by auto + shows "AX" using assms IsBoundedAbove_def by auto text‹Sets that are bounded below are contained in the domain of the relation.› -lemma Order_ZF_3_L1B: assumes "r X×X" +lemma Order_ZF_3_L1B: assumes "r X×X" and "IsBoundedBelow(A,r)" - shows "AX" using assms IsBoundedBelow_def by auto + shows "AX" using assms IsBoundedBelow_def by auto text‹For a total relation, the greater of two elements, as defined above, is indeed greater of any of the two.› -lemma Order_ZF_3_L2: assumes "r {is total on} X" +lemma Order_ZF_3_L2: assumes "r {is total on} X" and "xX" "yX" shows "x,GreaterOf(r,x,y) r" "y,GreaterOf(r,x,y) r" "SmallerOf(r,x,y),x r" "SmallerOf(r,x,y),y r" - using assms IsTotal_def Order_ZF_1_L1 GreaterOf_def SmallerOf_def + using assms IsTotal_def Order_ZF_1_L1 GreaterOf_def SmallerOf_def by auto text‹If $A$ is bounded above by $u$, $B$ is bounded above by $w$, then $A\cup B$ is bounded above by the greater of $u,w$.› lemma Order_ZF_3_L2B: - assumes A1: "r {is total on} X" and A2: "trans(r)" - and A3: "uX" "wX" - and A4: "xA. x,u r" "xB. x,w r" + assumes A1: "r {is total on} X" and A2: "trans(r)" + and A3: "uX" "wX" + and A4: "xA. x,u r" "xB. x,w r" shows "xAB. x,GreaterOf(r,u,w) r" proof let ?v = "GreaterOf(r,u,w)" - from A1 A3 have T1: " u,?v r" and T2: " w,?v r" + from A1 A3 have T1: " u,?v r" and T2: " w,?v r" using Order_ZF_3_L2 by auto - fix x assume A5: "xAB" show "x,?v r" + fix x assume A5: "xAB" show "x,?v r" proof - { assume "xA" - with A4 T1 have " x,u r u,?v r" by simp - with A2 have "x,?v r" by (rule Fol1_L3) } + with A4 T1 have " x,u r u,?v r" by simp + with A2 have "x,?v r" by (rule Fol1_L3) } moreover { assume "xA" - with A5 A4 T2 have " x,w r w,?v r" by simp - with A2 have "x,?v r" by (rule Fol1_L3) } + with A5 A4 T2 have " x,w r w,?v r" by simp + with A2 have "x,?v r" by (rule Fol1_L3) } ultimately show ?thesis by auto qed qed @@ -466,21 +466,21 @@

Theory Order_ZF

above is bounded above.›
lemma Order_ZF_3_L3: - assumes A1: "r {is total on} X" and A2: "trans(r)" - and A3: "IsBoundedAbove(A,r)" "IsBoundedAbove(B,r)" - and A4: "r X×X" + assumes A1: "r {is total on} X" and A2: "trans(r)" + and A3: "IsBoundedAbove(A,r)" "IsBoundedAbove(B,r)" + and A4: "r X×X" shows "IsBoundedAbove(AB,r)" proof - { assume "A=0 B=0" - with A3 have "IsBoundedAbove(AB,r)" by auto } + with A3 have "IsBoundedAbove(AB,r)" by auto } moreover { assume "¬ (A = 0 B = 0)" - then have T1: "A0" "B0" by auto - with A3 obtain u w where D1: "xA. x,u r" "xB. x,w r" + then have T1: "A0" "B0" by auto + with A3 obtain u w where D1: "xA. x,u r" "xB. x,w r" using IsBoundedAbove_def by auto let ?U = "GreaterOf(r,u,w)" - from T1 A4 D1 have "uX" "wX" by auto - with A1 A2 D1 have "xAB. x,?U r" + from T1 A4 D1 have "uX" "wX" by auto + with A1 A2 D1 have "xAB. x,?U r" using Order_ZF_3_L2B by blast then have "IsBoundedAbove(AB,r)" using IsBoundedAbove_def by auto } @@ -490,14 +490,14 @@

Theory Order_ZF

text‹For total and transitive relations if a set $A$ is bounded above then $A\cup \{a\}$ is bounded above.› -lemma Order_ZF_3_L4: - assumes A1: "r {is total on} X" and A2: "trans(r)" +lemma Order_ZF_3_L4: + assumes A1: "r {is total on} X" and A2: "trans(r)" and A3: "IsBoundedAbove(A,r)" and A4: "aX" and A5: "r X×X" shows "IsBoundedAbove(A{a},r)" proof - - from A1 have "refl(X,r)" + from A1 have "refl(X,r)" using total_is_refl by simp - with assms show ?thesis using + with assms show ?thesis using Order_ZF_3_L1 IsBounded_def Order_ZF_3_L3 by simp qed @@ -505,23 +505,23 @@

Theory Order_ZF

then $A\cup B$ is bounded below by the smaller of $u,w$.›
lemma Order_ZF_3_L5B: - assumes A1: "r {is total on} X" and A2: "trans(r)" - and A3: "lX" "mX" - and A4: "xA. l,x r" "xB. m,x r" + assumes A1: "r {is total on} X" and A2: "trans(r)" + and A3: "lX" "mX" + and A4: "xA. l,x r" "xB. m,x r" shows "xAB. SmallerOf(r,l,m),x r" proof let ?k = "SmallerOf(r,l,m)" - from A1 A3 have T1: " ?k,l r" and T2: " ?k,m r" + from A1 A3 have T1: " ?k,l r" and T2: " ?k,m r" using Order_ZF_3_L2 by auto - fix x assume A5: "xAB" show "?k,x r" + fix x assume A5: "xAB" show "?k,x r" proof - { assume "xA" - with A4 T1 have " ?k,l r l,x r" by simp - with A2 have "?k,x r" by (rule Fol1_L3) } + with A4 T1 have " ?k,l r l,x r" by simp + with A2 have "?k,x r" by (rule Fol1_L3) } moreover { assume "xA" - with A5 A4 T2 have " ?k,m r m,x r" by simp - with A2 have "?k,x r" by (rule Fol1_L3) } + with A5 A4 T2 have " ?k,m r m,x r" by simp + with A2 have "?k,x r" by (rule Fol1_L3) } ultimately show ?thesis by auto qed qed @@ -530,21 +530,21 @@

Theory Order_ZF

below is bounded below.›
lemma Order_ZF_3_L6: - assumes A1: "r {is total on} X" and A2: "trans(r)" - and A3: "IsBoundedBelow(A,r)" "IsBoundedBelow(B,r)" - and A4: "r X×X" + assumes A1: "r {is total on} X" and A2: "trans(r)" + and A3: "IsBoundedBelow(A,r)" "IsBoundedBelow(B,r)" + and A4: "r X×X" shows "IsBoundedBelow(AB,r)" proof - { assume "A=0 B=0" - with A3 have ?thesis by auto } + with A3 have ?thesis by auto } moreover { assume "¬ (A = 0 B = 0)" - then have T1: "A0" "B0" by auto - with A3 obtain l m where D1: "xA. l,x r" "xB. m,x r" + then have T1: "A0" "B0" by auto + with A3 obtain l m where D1: "xA. l,x r" "xB. m,x r" using IsBoundedBelow_def by auto let ?L = "SmallerOf(r,l,m)" - from T1 A4 D1 have T1: "lX" "mX" by auto - with A1 A2 D1 have "xAB. ?L,x r" + from T1 A4 D1 have T1: "lX" "mX" by auto + with A1 A2 D1 have "xAB. ?L,x r" using Order_ZF_3_L5B by blast then have "IsBoundedBelow(AB,r)" using IsBoundedBelow_def by auto } @@ -554,43 +554,43 @@

Theory Order_ZF

text‹For total and transitive relations if a set $A$ is bounded below then $A\cup \{a\}$ is bounded below.› -lemma Order_ZF_3_L7: - assumes A1: "r {is total on} X" and A2: "trans(r)" +lemma Order_ZF_3_L7: + assumes A1: "r {is total on} X" and A2: "trans(r)" and A3: "IsBoundedBelow(A,r)" and A4: "aX" and A5: "r X×X" shows "IsBoundedBelow(A{a},r)" proof - - from A1 have "refl(X,r)" + from A1 have "refl(X,r)" using total_is_refl by simp - with assms show ?thesis using + with assms show ?thesis using Order_ZF_3_L1 IsBounded_def Order_ZF_3_L6 by simp qed text‹For total and transitive relations unions of two bounded sets are bounded.› -theorem Order_ZF_3_T1: +theorem Order_ZF_3_T1: assumes "r {is total on} X" and "trans(r)" and "IsBounded(A,r)" "IsBounded(B,r)" and "r X×X" shows "IsBounded(AB,r)" - using assms Order_ZF_3_L3 Order_ZF_3_L6 Order_ZF_3_L7 IsBounded_def + using assms Order_ZF_3_L3 Order_ZF_3_L6 Order_ZF_3_L7 IsBounded_def by simp text‹For total and transitive relations if a set $A$ is bounded then $A\cup \{a\}$ is bounded.› -lemma Order_ZF_3_L8: +lemma Order_ZF_3_L8: assumes "r {is total on} X" and "trans(r)" and "IsBounded(A,r)" and "aX" and "r X×X" shows "IsBounded(A{a},r)" - using assms total_is_refl Order_ZF_3_L1 Order_ZF_3_T1 by blast + using assms total_is_refl Order_ZF_3_L1 Order_ZF_3_T1 by blast text‹A sufficient condition for a set to be bounded below.› -lemma Order_ZF_3_L9: assumes A1: "aA. l,a r" +lemma Order_ZF_3_L9: assumes A1: "aA. l,a r" shows "IsBoundedBelow(A,r)" proof - - from A1 have "l. xA. l,x r" + from A1 have "l. xA. l,x r" by auto then show "IsBoundedBelow(A,r)" using IsBoundedBelow_def by simp @@ -598,10 +598,10 @@

Theory Order_ZF

text‹A sufficient condition for a set to be bounded above.› -lemma Order_ZF_3_L10: assumes A1: "aA. a,u r" +lemma Order_ZF_3_L10: assumes A1: "aA. a,u r" shows "IsBoundedAbove(A,r)" proof - - from A1 have "u. xA. x,u r" + from A1 have "u. xA. x,u r" by auto then show "IsBoundedAbove(A,r)" using IsBoundedAbove_def by simp @@ -631,17 +631,17 @@

Theory Order_ZF

text‹A subset of a set that is bounded below is bounded below.› -lemma Order_ZF_3_L12: assumes A1: "IsBoundedBelow(A,r)" and A2: "BA" +lemma Order_ZF_3_L12: assumes A1: "IsBoundedBelow(A,r)" and A2: "BA" shows "IsBoundedBelow(B,r)" proof - { assume "A = 0" - with assms have "IsBoundedBelow(B,r)" + with assms have "IsBoundedBelow(B,r)" using IsBoundedBelow_def by auto } moreover { assume "A 0" - with A1 have "l. xA. l,x r" + with A1 have "l. xA. l,x r" using IsBoundedBelow_def by simp - with A2 have "l.xB. l,x r" by auto + with A2 have "l.xB. l,x r" by auto then have "IsBoundedBelow(B,r)" using IsBoundedBelow_def by auto } ultimately show "IsBoundedBelow(B,r)" by auto @@ -649,17 +649,17 @@

Theory Order_ZF

text‹A subset of a set that is bounded above is bounded above.› -lemma Order_ZF_3_L13: assumes A1: "IsBoundedAbove(A,r)" and A2: "BA" +lemma Order_ZF_3_L13: assumes A1: "IsBoundedAbove(A,r)" and A2: "BA" shows "IsBoundedAbove(B,r)" proof - { assume "A = 0" - with assms have "IsBoundedAbove(B,r)" + with assms have "IsBoundedAbove(B,r)" using IsBoundedAbove_def by auto } moreover { assume "A 0" - with A1 have "u. xA. x,u r" + with A1 have "u. xA. x,u r" using IsBoundedAbove_def by simp - with A2 have "u.xB. x,u r" by auto + with A2 have "u.xB. x,u r" by auto then have "IsBoundedAbove(B,r)" using IsBoundedAbove_def by auto } ultimately show "IsBoundedAbove(B,r)" by auto @@ -672,21 +672,21 @@

Theory Order_ZF

lemma Order_ZF_3_L14: assumes A1: "r {is total on} X" - and A2: "trans(r)" and A3: "antisym(r)" - and A4: "r X×X" and A5: "X0" - and A6: "xX. aA. xa x,a r" + and A2: "trans(r)" and A3: "antisym(r)" + and A4: "r X×X" and A5: "X0" + and A6: "xX. aA. xa x,a r" shows "¬IsBoundedAbove(A,r)" proof - - { from A5 A6 have I: "A0" by auto + { from A5 A6 have I: "A0" by auto moreover assume "IsBoundedAbove(A,r)" - ultimately obtain u where II: "xA. x,u r" + ultimately obtain u where II: "xA. x,u r" using IsBounded_def IsBoundedAbove_def by auto - with A4 I have "uX" by auto - with A6 obtain b where "bA" and III: "ub" and "u,b r" + with A4 I have "uX" by auto + with A6 obtain b where "bA" and III: "ub" and "u,b r" by auto - with II have "b,u r" "u,b r" by auto - with A3 have "b=u" by (rule Fol1_L4) - with III have False by simp + with II have "b,u r" "u,b r" by auto + with A3 have "b=u" by (rule Fol1_L4) + with III have False by simp } thus "¬IsBoundedAbove(A,r)" by auto qed @@ -699,7 +699,7 @@

Theory Order_ZF

text‹If $A$ is bounded below, then the set of elements in a set $A$ that are nongreater than a given element is bounded.› -lemma Order_ZF_3_L16: assumes A1: "IsBoundedBelow(A,r)" +lemma Order_ZF_3_L16: assumes A1: "IsBoundedBelow(A,r)" shows "IsBounded({xA. x,a r},r)" proof - { assume "A=0" @@ -708,7 +708,7 @@

Theory Order_ZF

by auto } moreover { assume "A0" - with A1 obtain l where I: "xA. l,x r" + with A1 obtain l where I: "xA. l,x r" using IsBoundedBelow_def by auto then have "y{xA. x,a r}. l,y r" by simp then have "IsBoundedBelow({xA. x,a r},r)" diff --git a/docs/IsarMathLib/OrderedLoop_ZF.html b/docs/IsarMathLib/OrderedLoop_ZF.html index a6d46e4..053a9c7 100644 --- a/docs/IsarMathLib/OrderedLoop_ZF.html +++ b/docs/IsarMathLib/OrderedLoop_ZF.html @@ -118,45 +118,58 @@

Theory OrderedLoop_ZF

sublocale loop1 < loop0 L A looper using ordLoopAssum loop_loop0_valid unfolding IsAnOrdLoop_def by auto +text‹The notation $-x+y$ and $x-y$ denotes left and right division, resp. + These two operations are closed in a loop, see lemma lrdiv_binop› in the Quasigroup_ZF› theory. + The next lemma reiterates that fact using the notation of the loop1› context. › + +lemma (in loop1) left_right_sub_closed: assumes "xL" "yL" + shows "(\<rm>x\<ad>y) L" and "x\<rs>y L" +proof - + from qgroupassum have "LeftDiv(L,A):L×L L" and "RightDiv(L,A):L×L L" + using lrdiv_binop by simp_all + with assms show "(\<rm>x\<ad>y) L" and "x\<rs>y L" + using apply_funtype by simp_all +qed + text‹In this context $x \leq y$ implies that both $x$ and $y$ belong to $L$.› -lemma (in loop1) lsq_members: assumes "x\<lsq>y" shows "xL" and "yL" - using ordLoopAssum assms IsAnOrdLoop_def by auto +lemma (in loop1) lsq_members: assumes "x\<lsq>y" shows "xL" and "yL" + using ordLoopAssum assms IsAnOrdLoop_def by auto text‹In this context $x < y$ implies that both $x$ and $y$ belong to $L$.› -lemma (in loop1) less_members: assumes "x\<ls>y" shows "xL" and "yL" - using ordLoopAssum assms IsAnOrdLoop_def by auto +lemma (in loop1) less_members: assumes "x\<ls>y" shows "xL" and "yL" + using ordLoopAssum assms IsAnOrdLoop_def by auto text‹ In an ordered loop the order is translation invariant. › -lemma (in loop1) ord_trans_inv: assumes "x\<lsq>y" "zL" +lemma (in loop1) ord_trans_inv: assumes "x\<lsq>y" "zL" shows "x\<ra>z \<lsq> y\<ra>z" and "z\<ra>x \<lsq> z\<ra>y" proof - - from ordLoopAssum assms have + from ordLoopAssum assms have "(x,y r A` x,z,A`y,z r) (x,y r A`z,x,A`z,y r )" - using lsq_members unfolding IsAnOrdLoop_def by blast - with assms(1) show "x\<ra>z \<lsq> y\<ra>z" and "z\<ra>x \<lsq> z\<ra>y" by auto + using lsq_members unfolding IsAnOrdLoop_def by blast + with assms(1) show "x\<ra>z \<lsq> y\<ra>z" and "z\<ra>x \<lsq> z\<ra>y" by auto qed text‹ In an ordered loop the strict order is translation invariant. › -lemma (in loop1) strict_ord_trans_inv: assumes "x\<ls>y" "zL" +lemma (in loop1) strict_ord_trans_inv: assumes "x\<ls>y" "zL" shows "x\<ra>z \<ls> y\<ra>z" and "z\<ra>x \<ls> z\<ra>y" proof - - from assms have "x\<ra>z \<lsq> y\<ra>z" and "z\<ra>x \<lsq> z\<ra>y" - using ord_trans_inv by auto + from assms have "x\<ra>z \<lsq> y\<ra>z" and "z\<ra>x \<lsq> z\<ra>y" + using ord_trans_inv by auto moreover have "x\<ra>z y\<ra>z" and "z\<ra>x z\<ra>y" proof - { assume "x\<ra>z = y\<ra>z" - with assms have "x=y" using less_members qg_cancel_right by blast - with assms(1) have False by simp + with assms have "x=y" using less_members qg_cancel_right by blast + with assms(1) have False by simp } thus "x\<ra>z y\<ra>z" by auto { assume "z\<ra>x = z\<ra>y" - with assms have "x=y" using less_members qg_cancel_left by blast - with assms(1) have False by simp + with assms have "x=y" using less_members qg_cancel_left by blast + with assms(1) have False by simp } thus "z\<ra>x z\<ra>y" by auto qed ultimately show "x\<ra>z \<ls> y\<ra>z" and "z\<ra>x \<ls> z\<ra>y" @@ -165,40 +178,40 @@

Theory OrderedLoop_ZF

text‹We can cancel an element from both sides of an inequality on the right side. › -lemma (in loop1) ineq_cancel_right: assumes "xL" "yL" "zL" and "x\<ra>z \<lsq> y\<ra>z" +lemma (in loop1) ineq_cancel_right: assumes "xL" "yL" "zL" and "x\<ra>z \<lsq> y\<ra>z" shows "x\<lsq>y" proof - - from ordLoopAssum assms(1,2,3) have "x,y r A` x,z,A`y,z r" + from ordLoopAssum assms(1,2,3) have "x,y r A` x,z,A`y,z r" unfolding IsAnOrdLoop_def by blast - with assms(4) show "x\<lsq>y" by simp + with assms(4) show "x\<lsq>y" by simp qed text‹We can cancel an element from both sides of a strict inequality on the right side. › -lemma (in loop1) strict_ineq_cancel_right: assumes "xL" "yL" "zL" and "x\<ra>z \<ls> y\<ra>z" +lemma (in loop1) strict_ineq_cancel_right: assumes "xL" "yL" "zL" and "x\<ra>z \<ls> y\<ra>z" shows "x\<ls>y" - using assms ineq_cancel_right by auto + using assms ineq_cancel_right by auto text‹We can cancel an element from both sides of an inequality on the left side. › -lemma (in loop1) ineq_cancel_left: assumes "xL" "yL" "zL" and "z\<ra>x \<lsq> z\<ra>y" +lemma (in loop1) ineq_cancel_left: assumes "xL" "yL" "zL" and "z\<ra>x \<lsq> z\<ra>y" shows "x\<lsq>y" proof - - from ordLoopAssum assms(1,2,3) have "x,y r A`z,x,A`z,y r" + from ordLoopAssum assms(1,2,3) have "x,y r A`z,x,A`z,y r" unfolding IsAnOrdLoop_def by blast - with assms(4) show "x\<lsq>y" by simp + with assms(4) show "x\<lsq>y" by simp qed text‹We can cancel an element from both sides of a strict inequality on the left side. › -lemma (in loop1) strict_ineq_cancel_left: +lemma (in loop1) strict_ineq_cancel_left: assumes "xL" "yL" "zL" and "z\<ra>x \<ls> z\<ra>y" shows "x\<ls>y" - using assms ineq_cancel_left by auto + using assms ineq_cancel_left by auto text‹The definition of the nonnegative set in the notation used in the loop1› locale: › -lemma (in loop1) nonneg_definition: +lemma (in loop1) nonneg_definition: shows "x L+ 𝟬 \<lsq> x" using ordLoopAssum IsAnOrdLoop_def Nonnegative_def by auto text‹The nonnegative set is contained in the loop.› @@ -219,169 +232,181 @@

Theory OrderedLoop_ZF

text‹Another form of the definition of the positive set in the notation used in the loop1› locale: › -lemma (in loop1) posset_definition1: +lemma (in loop1) posset_definition1: shows "x L+ 𝟬\<ls>x" using ordLoopAssum IsAnOrdLoop_def PositiveSet_def by auto text‹ The order in an ordered loop is antisymmeric. › -lemma (in loop1) loop_ord_antisym: assumes "x\<lsq>y" and "y\<lsq>x" +lemma (in loop1) loop_ord_antisym: assumes "x\<lsq>y" and "y\<lsq>x" shows "x=y" proof - - from ordLoopAssum assms have "antisym(r)" "x,y r" "y,x r" + from ordLoopAssum assms have "antisym(r)" "x,y r" "y,x r" unfolding IsAnOrdLoop_def IsPartOrder_def by auto then show "x=y" by (rule Fol1_L4) qed text‹ The loop order is transitive. › -lemma (in loop1) loop_ord_trans: assumes "x\<lsq>y" and "y\<lsq>z" shows "x\<lsq>z" +lemma (in loop1) loop_ord_trans: assumes "x\<lsq>y" and "y\<lsq>z" shows "x\<lsq>z" proof - - from ordLoopAssum assms have "trans(r)" and "x,y r y,z r" + from ordLoopAssum assms have "trans(r)" and "x,y r y,z r" unfolding IsAnOrdLoop_def IsPartOrder_def by auto then have "x,z r" by (rule Fol1_L3) thus ?thesis by simp qed text‹ The loop order is reflexive. › -lemma (in loop1) loop_ord_refl: assumes "xL" shows "x\<lsq>x" - using assms ordLoopAssum unfolding IsAnOrdLoop_def IsPartOrder_def refl_def + +lemma (in loop1) loop_ord_refl: assumes "xL" shows "x\<lsq>x" + using assms ordLoopAssum unfolding IsAnOrdLoop_def IsPartOrder_def refl_def + by simp + +text‹The neutral element is nonnegative.› + +lemma (in loop1) loop_zero_nonneg: shows "𝟬L+" + using neut_props_loop(1) loop_ord_refl nonneg_definition by simp text‹ A form of mixed transitivity for the strict order: › -lemma (in loop1) loop_strict_ord_trans: assumes "x\<lsq>y" and "y\<ls>z" +lemma (in loop1) loop_strict_ord_trans: assumes "x\<lsq>y" and "y\<ls>z" shows "x\<ls>z" proof - - from assms have "x\<lsq>y" and "y\<lsq>z" by auto - then have "x\<lsq>z" by (rule loop_ord_trans) - with assms show "x\<ls>z" using loop_ord_antisym by auto + from assms have "x\<lsq>y" and "y\<lsq>z" by auto + then have "x\<lsq>z" by (rule loop_ord_trans) + with assms show "x\<ls>z" using loop_ord_antisym by auto qed text‹ Another form of mixed transitivity for the strict order: › -lemma (in loop1) loop_strict_ord_trans1: assumes "x\<ls>y" and "y\<lsq>z" +lemma (in loop1) loop_strict_ord_trans1: assumes "x\<ls>y" and "y\<lsq>z" shows "x\<ls>z" proof - - from assms have "x\<lsq>y" and "y\<lsq>z" by auto - then have "x\<lsq>z" by (rule loop_ord_trans) - with assms show "x\<ls>z" using loop_ord_antisym by auto + from assms have "x\<lsq>y" and "y\<lsq>z" by auto + then have "x\<lsq>z" by (rule loop_ord_trans) + with assms show "x\<ls>z" using loop_ord_antisym by auto qed text‹ Yet another form of mixed transitivity for the strict order: › -lemma (in loop1) loop_strict_ord_trans2: assumes "x\<ls>y" and "y\<ls>z" +lemma (in loop1) loop_strict_ord_trans2: assumes "x\<ls>y" and "y\<ls>z" shows "x\<ls>z" proof - - from assms have "x\<lsq>y" and "y\<lsq>z" by auto - then have "x\<lsq>z" by (rule loop_ord_trans) - with assms show "x\<ls>z" using loop_ord_antisym by auto + from assms have "x\<lsq>y" and "y\<lsq>z" by auto + then have "x\<lsq>z" by (rule loop_ord_trans) + with assms show "x\<ls>z" using loop_ord_antisym by auto qed text‹ We can move an element to the other side of an inequality. Well, not exactly, but our notation creates an illusion to that effect. › -lemma (in loop1) lsq_other_side: assumes "x\<lsq>y" +lemma (in loop1) lsq_other_side: assumes "x\<lsq>y" shows "𝟬 \<lsq> \<rm>x\<ad>y" "(\<rm>x\<ad>y) L+" "𝟬 \<lsq> y\<rs>x" "(y\<rs>x) L+" proof - - from assms have "xL" "yL" "𝟬L" "(\<rm>x\<ad>y) L" "(y\<rs>x) L" - using lsq_members neut_props_loop(1) lrdiv_props(2,5) by auto + from assms have "xL" "yL" "𝟬L" "(\<rm>x\<ad>y) L" "(y\<rs>x) L" + using lsq_members neut_props_loop(1) lrdiv_props(2,5) by auto then have "x = x\<ra>𝟬" and "y = x\<ra>(\<rm>x\<ad>y)" using neut_props_loop(2) lrdiv_props(6) by auto - with assms have "x\<ra>𝟬 \<lsq> x\<ra>(\<rm>x\<ad>y)" by simp - with xL 𝟬L (\<rm>x\<ad>y) L show "𝟬 \<lsq> \<rm>x\<ad>y" using ineq_cancel_left + with assms have "x\<ra>𝟬 \<lsq> x\<ra>(\<rm>x\<ad>y)" by simp + with xL 𝟬L (\<rm>x\<ad>y) L show "𝟬 \<lsq> \<rm>x\<ad>y" using ineq_cancel_left by simp - then show "(\<rm>x\<ad>y) L+" using nonneg_definition by simp + then show "(\<rm>x\<ad>y) L+" using nonneg_definition by simp from xL yL have "x = 𝟬\<ra>x" and "y = (y\<rs>x)\<ra>x" using neut_props_loop(2) lrdiv_props(3) by auto - with assms have "𝟬\<ra>x \<lsq> (y\<rs>x)\<ra>x" by simp - with xL 𝟬L (y\<rs>x) L show "𝟬 \<lsq> y\<rs>x" using ineq_cancel_right + with assms have "𝟬\<ra>x \<lsq> (y\<rs>x)\<ra>x" by simp + with xL 𝟬L (y\<rs>x) L show "𝟬 \<lsq> y\<rs>x" using ineq_cancel_right by simp - then show "(y\<rs>x) L+" using nonneg_definition by simp + then show "(y\<rs>x) L+" using nonneg_definition by simp qed text‹ We can move an element to the other side of a strict inequality. › -lemma (in loop1) ls_other_side: assumes "x\<ls>y" +lemma (in loop1) ls_other_side: assumes "x\<ls>y" shows "𝟬 \<ls> \<rm>x\<ad>y" "(\<rm>x\<ad>y) L+" "𝟬 \<ls> y\<rs>x" "(y\<rs>x) L+" proof - - from assms have "xL" "yL" "𝟬L" "(\<rm>x\<ad>y) L" "(y\<rs>x) L" - using lsq_members neut_props_loop(1) lrdiv_props(2,5) by auto + from assms have "xL" "yL" "𝟬L" "(\<rm>x\<ad>y) L" "(y\<rs>x) L" + using lsq_members neut_props_loop(1) lrdiv_props(2,5) by auto then have "x = x\<ra>𝟬" and "y = x\<ra>(\<rm>x\<ad>y)" using neut_props_loop(2) lrdiv_props(6) by auto - with assms have "x\<ra>𝟬 \<ls> x\<ra>(\<rm>x\<ad>y)" by simp - with xL 𝟬L (\<rm>x\<ad>y) L show "𝟬 \<ls> \<rm>x\<ad>y" using strict_ineq_cancel_left + with assms have "x\<ra>𝟬 \<ls> x\<ra>(\<rm>x\<ad>y)" by simp + with xL 𝟬L (\<rm>x\<ad>y) L show "𝟬 \<ls> \<rm>x\<ad>y" using strict_ineq_cancel_left by simp - then show "(\<rm>x\<ad>y) L+" using posset_definition1 by simp + then show "(\<rm>x\<ad>y) L+" using posset_definition1 by simp from xL yL have "x = 𝟬\<ra>x" and "y = (y\<rs>x)\<ra>x" using neut_props_loop(2) lrdiv_props(3) by auto - with assms have "𝟬\<ra>x \<ls> (y\<rs>x)\<ra>x" by simp - with xL 𝟬L (y\<rs>x) L show "𝟬 \<ls> y\<rs>x" using strict_ineq_cancel_right + with assms have "𝟬\<ra>x \<ls> (y\<rs>x)\<ra>x" by simp + with xL 𝟬L (y\<rs>x) L show "𝟬 \<ls> y\<rs>x" using strict_ineq_cancel_right by simp - then show "(y\<rs>x) L+" using posset_definition1 by simp + then show "(y\<rs>x) L+" using posset_definition1 by simp qed text‹We can add sides of inequalities.› -lemma (in loop1) add_ineq: assumes "x\<lsq>y" "z\<lsq>t" +lemma (in loop1) add_ineq: assumes "x\<lsq>y" "z\<lsq>t" shows "x\<ra>z \<lsq> y\<ra>t" proof - - from assms have "x\<ra>z \<lsq> y\<ra>z" - using lsq_members(1) ord_trans_inv(1) by simp - with assms show ?thesis using lsq_members(2) ord_trans_inv(2) loop_ord_trans + from assms have "x\<ra>z \<lsq> y\<ra>z" + using lsq_members(1) ord_trans_inv(1) by simp + with assms show ?thesis using lsq_members(2) ord_trans_inv(2) loop_ord_trans by simp qed text‹We can add sides of strict inequalities. The proof uses a lemma that relies on the antisymmetry of the order relation.› -lemma (in loop1) add_ineq_strict: assumes "x\<ls>y" "z\<ls>t" +lemma (in loop1) add_ineq_strict: assumes "x\<ls>y" "z\<ls>t" shows "x\<ra>z \<ls> y\<ra>t" proof - - from assms have "x\<ra>z \<ls> y\<ra>z" - using less_members(1) strict_ord_trans_inv(1) by auto - moreover from assms have "y\<ra>z \<ls> y\<ra>t" - using less_members(2) strict_ord_trans_inv(2) by auto - ultimately show ?thesis by (rule loop_strict_ord_trans2) + from assms have "x\<ra>z \<ls> y\<ra>z" + using less_members(1) strict_ord_trans_inv(1) by auto + moreover from assms have "y\<ra>z \<ls> y\<ra>t" + using less_members(2) strict_ord_trans_inv(2) by auto + ultimately show ?thesis by (rule loop_strict_ord_trans2) qed text‹We can add sides of inequalities one of which is strict. › -lemma (in loop1) add_ineq_strict1: assumes "x\<lsq>y" "z\<ls>t" +lemma (in loop1) add_ineq_strict1: assumes "x\<lsq>y" "z\<ls>t" shows "x\<ra>z \<ls> y\<ra>t" and "z\<ra>x \<ls> t\<ra>y" proof - - from assms have "x\<ra>z \<lsq> y\<ra>z" - using less_members(1) ord_trans_inv(1) by auto - with assms show "x\<ra>z \<ls> y\<ra>t" - using lsq_members(2) strict_ord_trans_inv(2) loop_strict_ord_trans + from assms have "x\<ra>z \<lsq> y\<ra>z" + using less_members(1) ord_trans_inv(1) by auto + with assms show "x\<ra>z \<ls> y\<ra>t" + using lsq_members(2) strict_ord_trans_inv(2) loop_strict_ord_trans by blast - from assms have "z\<ra>x \<ls> t\<ra>x" - using lsq_members(1) strict_ord_trans_inv(1) by simp - with assms show "z\<ra>x \<ls> t\<ra>y" - using less_members(2) ord_trans_inv(2) loop_strict_ord_trans1 + from assms have "z\<ra>x \<ls> t\<ra>x" + using lsq_members(1) strict_ord_trans_inv(1) by simp + with assms show "z\<ra>x \<ls> t\<ra>y" + using less_members(2) ord_trans_inv(2) loop_strict_ord_trans1 by blast qed -text‹Subtracting a positive element decreases the value. › +text‹Subtracting a positive element decreases the value, while adding a positive element + increases the value. › -lemma (in loop1) subtract_pos: assumes "xL" "𝟬\<ls>y" - shows "x\<rs>y \<ls> x" and "(\<rm>y\<ad>x) \<ls> x" +lemma (in loop1) add_subtract_pos: assumes "xL" "𝟬\<ls>y" + shows + "x\<rs>y \<ls> x" "(\<rm>y\<ad>x) \<ls> x" "x \<ls> x\<ra>y" "x \<ls> y\<ra>x" proof - - from assms(2) have "yL" using less_members(2) by simp - from assms(1) have "x\<lsq>x" + from assms(2) have "yL" using less_members(2) by simp + from assms(1) have "x\<lsq>x" using ordLoopAssum unfolding IsAnOrdLoop_def IsPartOrder_def refl_def by simp - with assms(2) have "x\<ra>𝟬 \<ls> x\<ra>y" - using add_ineq_strict1(1) by simp - with assms yL show "x\<rs>y \<ls> x" - using neut_props_loop(2) lrdiv_props(3) lrdiv_props(2) strict_ineq_cancel_right + with assms(2) have "x\<ra>𝟬 \<ls> x\<ra>y" + using add_ineq_strict1(1) by simp + with assms yL show "x\<rs>y \<ls> x" + using neut_props_loop(2) lrdiv_props(3) lrdiv_props(2) strict_ineq_cancel_right by simp - from assms(2) x\<lsq>x have "𝟬\<ra>x \<ls> y\<ra>x" - using add_ineq_strict1(2) by simp - with assms yL show "(\<rm>y\<ad>x) \<ls> x" - using neut_props_loop(2) lrdiv_props(6) lrdiv_props(5) strict_ineq_cancel_left + from assms(2) x\<lsq>x have "𝟬\<ra>x \<ls> y\<ra>x" + using add_ineq_strict1(2) by simp + with assms yL show "(\<rm>y\<ad>x) \<ls> x" + using neut_props_loop(2) lrdiv_props(6) lrdiv_props(5) strict_ineq_cancel_left by simp -qed + from assms(1) x\<ra>𝟬 \<ls> x\<ra>y 𝟬\<ra>x \<ls> y\<ra>x + show "x \<ls> x\<ra>y" "x \<ls> y\<ra>x" + using neut_props_loop(2) by simp_all +qed end diff --git a/docs/IsarMathLib/Real_ZF_2.html b/docs/IsarMathLib/Real_ZF_2.html index 339bf4a..fe09386 100644 --- a/docs/IsarMathLib/Real_ZF_2.html +++ b/docs/IsarMathLib/Real_ZF_2.html @@ -270,19 +270,25 @@

Theory Real_ZF_2

using pos_is_lattice(3) pos_non_empty meet_down_directs down_dir_mono unfolding IsAlattice_def by blast -text‹ We define the topology on reals as one consisting of the unions of open disks. › +text‹ We define the topology on reals as the metric topology + coming from the dist› metric (i.e. consisting of the unions of open disks). › -definition (in reals) RealTopology ("τ") - where "τ {A. A Pow(c.{disk(c,r). r +})}" +definition (in reals) RealTopology ("τ") + where "τ MetricTopology(,,Add,ROrd,dist)" + +text‹A more explicit definition of the real topology in notation used in the reals› context. › + +lemma (in reals) real_toplology_def_alt: + shows "τ = {A. A Pow(c.{disk(c,r). r +})}" + unfolding MetricTopology_def RealTopology_def by simp text‹Real numbers form a Hausdorff topological space with topology generated by open disks. › -theorem (in reals) reals_is_top: - shows "τ {is a topology}" "τ = " "τ {is T2}" - using rord_down_directs metric_space_valid pmetric_space_valid - pmetric_space.pmetric_is_top metric_space.metric_space_T2 - unfolding RealTopology_def - by simp_all +theorem (in reals) reals_is_top: + shows "τ {is a topology}" "τ = " "τ {is T2}" + using rord_down_directs metric_space_valid pmetric_space_valid pmetric_space.pmetric_is_top + pmetric_space.metric_top_carrier metric_space.metric_space_T2 + unfolding RealTopology_def by simp_all end diff --git a/docs/IsarMathLib/Topology_ZF_examples.html b/docs/IsarMathLib/Topology_ZF_examples.html index b61aef8..6d9a993 100644 --- a/docs/IsarMathLib/Topology_ZF_examples.html +++ b/docs/IsarMathLib/Topology_ZF_examples.html @@ -238,57 +238,55 @@

Theory Topology_ZF_examples

ultimately show ?thesis by auto qed -text‹ $X$ is a closed set that contains $A$. -This lemma is necessary because we cannot -use the lemmas proven in the topology0› context since - T≠0"} › is too weak for - CoCardinal(X,T)› to be a topology.› +text‹ $X$ is a closed set that contains $A$. + This lemma is necessary because we cannot use the lemmas proven in the + topology0› context since $T\neq 0$ is too weak for CoCardinal(X,T)› + to be a topology.› -lemma X_closedcov_cocardinal: +lemma X_closedcov_cocardinal: assumes "T0" "AX" - shows "XClosedCovers(A,CoCardinal(X,T))" using ClosedCovers_def - using union_cocardinal closed_sets_cocardinal assms by auto + shows "X ClosedCovers(A,CoCardinal(X,T))" using ClosedCovers_def + using union_cocardinal closed_sets_cocardinal assms by auto -text‹The closure of a set is itself if it is closed or X› if -it isn't closed.› +text‹The closure of a set is itself if it is closed or $X$ if it isn't closed.› -lemma closure_set_cocardinal: +lemma closure_set_cocardinal: assumes "T0""AX" shows "Closure(A,CoCardinal(X,T))=(if (A T) then A else X)" proof- { assume "A T" - with assms have "A {is closed in} CoCardinal(X,T)" using closed_sets_cocardinal by auto - with assms(2) have "A {D Pow(X). D {is closed in} CoCardinal(X,T) AD}" by auto - with assms(1) have S:"AClosedCovers(A,CoCardinal(X,T))" using ClosedCovers_def + with assms have "A {is closed in} CoCardinal(X,T)" using closed_sets_cocardinal by auto + with assms(2) have "A {D Pow(X). D {is closed in} CoCardinal(X,T) AD}" by auto + with assms(1) have S:"AClosedCovers(A,CoCardinal(X,T))" using ClosedCovers_def using union_cocardinal by auto - hence l1:"ClosedCovers(A,CoCardinal(X,T))A" by blast - from S have l2:"A ClosedCovers(A,CoCardinal(X,T))" + hence l1:"ClosedCovers(A,CoCardinal(X,T))A" by blast + from S have l2:"A ClosedCovers(A,CoCardinal(X,T))" unfolding ClosedCovers_def by auto - from l1 l2 have "Closure(A,CoCardinal(X,T))=A" using Closure_def + from l1 l2 have "Closure(A,CoCardinal(X,T))=A" using Closure_def by auto } moreover { - assume as:"¬ A T" + assume as:"¬ A T" { fix U assume "AU" - then have Q:"A U" using subset_imp_lepoll by auto + then have Q:"A U" using subset_imp_lepoll by auto { assume "U T" - with Q have "A T" using lesspoll_trans1 by auto - with as have "False" by auto + with Q have "A T" using lesspoll_trans1 by auto + with as have "False" by auto } hence "¬ U T" by auto - with assms(1) have "¬(U {is closed in} CoCardinal(X,T)) U=X" using closed_sets_cocardinal + with assms(1) have "¬(U {is closed in} CoCardinal(X,T)) U=X" using closed_sets_cocardinal by auto } - with assms(1) have "UPow(X). U{is closed in}CoCardinal(X,T) AUU=X" + with assms(1) have "UPow(X). U{is closed in}CoCardinal(X,T) AUU=X" by auto - with assms(1) have "ClosedCovers(A,CoCardinal(X,T)){X}" + with assms(1) have "ClosedCovers(A,CoCardinal(X,T)){X}" using union_cocardinal using ClosedCovers_def by auto - with assms have "ClosedCovers(A,CoCardinal(X,T))={X}" using X_closedcov_cocardinal + with assms have "ClosedCovers(A,CoCardinal(X,T))={X}" using X_closedcov_cocardinal by auto then have " Closure(A,CoCardinal(X,T)) = X " using Closure_def by auto } @@ -299,44 +297,44 @@

Theory Topology_ZF_examples

X› if not $A$ neither $X-A$ are closed and; if only one is closed, then the closed one is its boundary.› -lemma boundary_cocardinal: +lemma boundary_cocardinal: assumes "T0""AX" shows "Boundary(A,CoCardinal(X,T)) = (if A T then (if (X-A) T then 0 else A) else (if (X-A) T then X-A else X))" proof- - from assms(2) have "X-A X" by auto + from assms(2) have "X-A X" by auto { assume AS: "AT" "X-A T" - with assms X-A X have + with assms X-A X have "Closure(X-A,CoCardinal(X,T)) = X-A" and "Closure(A,CoCardinal(X,T)) = A" using closure_set_cocardinal by auto - with assms(1) have "Boundary(A,CoCardinal(X,T)) = 0" + with assms(1) have "Boundary(A,CoCardinal(X,T)) = 0" using Boundary_def union_cocardinal by auto } moreover { assume AS: "~(AT)" "X-A T" - with assms X-A X have + with assms X-A X have "Closure(X-A,CoCardinal(X,T)) = X-A" and "Closure(A,CoCardinal(X,T)) = X" using closure_set_cocardinal by auto - with assms(1) have "Boundary(A,CoCardinal(X,T))=X-A" using Boundary_def + with assms(1) have "Boundary(A,CoCardinal(X,T))=X-A" using Boundary_def union_cocardinal by auto } moreover { assume AS:"~(AT)" "~(X-A T)" - with assms X-A X have + with assms X-A X have "Closure(X-A,CoCardinal(X,T))=X" and "Closure(A,CoCardinal(X,T))=X" using closure_set_cocardinal by auto - with assms(1) have "Boundary(A,CoCardinal(X,T))=X" using Boundary_def union_cocardinal + with assms(1) have "Boundary(A,CoCardinal(X,T))=X" using Boundary_def union_cocardinal by auto } moreover { assume AS:"A T" "~(X-AT)" - with assms X-A X have + with assms X-A X have "Closure(X-A,CoCardinal(X,T))=X" and "Closure(A,CoCardinal(X,T)) = A" using closure_set_cocardinal by auto - with assms have "Boundary(A,CoCardinal(X,T))=A" using Boundary_def union_cocardinal + with assms have "Boundary(A,CoCardinal(X,T))=A" using Boundary_def union_cocardinal by auto } ultimately show ?thesis by auto @@ -345,7 +343,7 @@

Theory Topology_ZF_examples

text‹If the set is too small or the cardinal too large, then the topology is just the discrete topology.› -lemma discrete_cocardinal: +lemma discrete_cocardinal: assumes "XT" shows "CoCardinal(X,T) = Pow(X)" proof @@ -357,11 +355,11 @@

Theory Topology_ZF_examples

then show "CoCardinal(X,T) Pow(X)" by auto { fix U - assume A:"U Pow(X)" + assume A:"U Pow(X)" then have "X-U X" by auto then have "X-U X" using subset_imp_lepoll by auto - then have "X-U T" using lesspoll_trans1 assms by auto - with A have "UCoCardinal(X,T)" using CoCardinal_def + then have "X-U T" using lesspoll_trans1 assms by auto + with A have "UCoCardinal(X,T)" using CoCardinal_def by auto } then show "Pow(X) CoCardinal(X,T)" by auto @@ -396,13 +394,13 @@

Theory Topology_ZF_examples

{ fix M assume "M (CoCardinal(X,T) {restricted to} Y)" - then obtain A where A1:"A CoCardinal(X,T)" "M=Y A" using RestrictedTo_def by auto + then obtain A where A1:"A CoCardinal(X,T)" "M=Y A" using RestrictedTo_def by auto then have "M Pow(X Y)" using CoCardinal_def by auto moreover - from A1 have "(Y X)-M = (Y X)-A" using CoCardinal_def by auto + from A1 have "(Y X)-M = (Y X)-A" using CoCardinal_def by auto with (Y X)-M = (Y X)-A have "(Y X)-M X-A" by auto then have "(Y X)-M X-A" using subset_imp_lepoll by auto - with A1 have "(Y X)-M T M=0" using lesspoll_trans1 CoCardinal_def + with A1 have "(Y X)-M T M=0" using lesspoll_trans1 CoCardinal_def by auto ultimately have "M CoCardinal(YX, T)" using CoCardinal_def by auto @@ -411,7 +409,7 @@

Theory Topology_ZF_examples

{ fix M let ?A = "M (X-Y)" - assume A:"M CoCardinal(Y X,T)" + assume A:"M CoCardinal(Y X,T)" { assume "M=0" hence "M=0 Y" by auto @@ -420,19 +418,19 @@

Theory Topology_ZF_examples

} moreover { - assume AS:"M0" - from A AS have A1:"(MPow(Y X) (Y X)-MT)" using CoCardinal_def by auto + assume AS:"M0" + from A AS have A1:"(MPow(Y X) (Y X)-MT)" using CoCardinal_def by auto hence "?APow(X)" by blast moreover have "X-?A=(Y X)-M" by blast - with A1 have "X-?A T" by auto + with A1 have "X-?A T" by auto ultimately have "?ACoCardinal(X,T)" using CoCardinal_def by auto - then have AT:"Y ?ACoCardinal(X,T) {restricted to} Y" using RestrictedTo_def + then have AT:"Y ?ACoCardinal(X,T) {restricted to} Y" using RestrictedTo_def by auto have "Y ?A=Y M" by blast - also from A1 have "=M" by auto + also from A1 have "=M" by auto finally have "Y ?A=M" by simp - with AT have "MCoCardinal(X,T) {restricted to} Y" + with AT have "MCoCardinal(X,T) {restricted to} Y" by auto } ultimately have "MCoCardinal(X,T) {restricted to} Y" by auto @@ -458,20 +456,20 @@

Theory Topology_ZF_examples

{ fix M assume "M Pow(ExcludedSet(X,Q))" - then have A:"M{FPow(X). Q F=0} {X}" using ExcludedSet_def by auto + then have A:"M{FPow(X). Q F=0} {X}" using ExcludedSet_def by auto hence "MPow(X)" by auto moreover { - have B:"Q M={Q T. TM}" by auto + have B:"Q M={Q T. TM}" by auto { assume "XM" - with A have "M{FPow(X). Q F=0}" by auto - with B have "Q M=0" by auto + with A have "M{FPow(X). Q F=0}" by auto + with B have "Q M=0" by auto } moreover { assume "XM" - with A have "M=X" by auto + with A have "M=X" by auto } ultimately have "Q M=0 M=X" by auto } @@ -519,20 +517,20 @@

Theory Topology_ZF_examples

proof- { fix x - assume A:"D X" "X-D ExcludedSet(X,T)" "D0" "xT" "xX" - from A(1) have B:"X-(X-D)=D" by auto - from A(2) have "T(X-D)=0 X-D=X" using ExcludedSet_def by auto + assume A:"D X" "X-D ExcludedSet(X,T)" "D0" "xT" "xX" + from A(1) have B:"X-(X-D)=D" by auto + from A(2) have "T(X-D)=0 X-D=X" using ExcludedSet_def by auto hence "T(X-D)=0 X-(X-D)=X-X" by auto - with B have "T(X-D)=0 D=X-X" by auto + with B have "T(X-D)=0 D=X-X" by auto hence "T(X-D)=0 D=0" by auto - with A(3) have "T(X-D)=0" by auto - with A(4) have "xX-D" by auto - with A(5) have "xD" by auto + with A(3) have "T(X-D)=0" by auto + with A(4) have "xX-D" by auto + with A(5) have "xD" by auto } moreover { - assume A:"XTD" "DX" - from A(1) have "X-DX-(XT)" by auto + assume A:"XTD" "DX" + from A(1) have "X-DX-(XT)" by auto also have " = X-T" by auto finally have "T(X-D) = 0" by auto moreover @@ -545,13 +543,13 @@

Theory Topology_ZF_examples

text‹The interior of a set is itself if it is X› or the difference with the set T› -lemma interior_set_excludedset: +lemma interior_set_excludedset: assumes "AX" shows "Interior(A,ExcludedSet(X,T)) = (if A=X then X else A-T)" proof- { - assume A:"AX" - from assms have "A-T ExcludedSet(X,T)" using ExcludedSet_def by auto + assume A:"AX" + from assms have "A-T ExcludedSet(X,T)" using ExcludedSet_def by auto then have "A-TInterior(A,ExcludedSet(X,T))" using Interior_def by auto moreover @@ -559,7 +557,7 @@

Theory Topology_ZF_examples

fix U assume "U ExcludedSet(X,T)" "UA" then have "TU=0 U=X""UA" using ExcludedSet_def by auto - with A assms have "TU=0""UA" by auto + with A assms have "TU=0""UA" by auto then have "U-T=U""U-TA-T" by auto then have "UA-T" by auto } @@ -577,7 +575,7 @@

Theory Topology_ZF_examples

text‹The closure of a set is itself if it is 0› or the union with T›.› -lemma closure_set_excludedset: +lemma closure_set_excludedset: assumes "AX" shows "Closure(A,ExcludedSet(X,T))=(if A=0 then 0 else A (X T))" proof- @@ -587,14 +585,14 @@

Theory Topology_ZF_examples

hence "Closure(0,ExcludedSet(X,T))=0" by blast moreover { - assume A:"A0" - with assms have "(A(XT)) {is closed in}ExcludedSet(X,T)" using closed_sets_excludedset + assume A:"A0" + with assms have "(A(XT)) {is closed in}ExcludedSet(X,T)" using closed_sets_excludedset by blast then have "(A (X T)) {D Pow(X). D {is closed in}ExcludedSet(X,T) AD}" - using assms by auto + using assms by auto then have "(A (X T))ClosedCovers(A,ExcludedSet(X,T))" unfolding ClosedCovers_def using union_excludedset by auto - then have l1:"ClosedCovers(A,ExcludedSet(X,T)) (A (X T))" by blast + then have l1:"ClosedCovers(A,ExcludedSet(X,T)) (A (X T))" by blast { fix U assume "UClosedCovers(A,ExcludedSet(X,T))" @@ -602,13 +600,13 @@

Theory Topology_ZF_examples

union_excludedset by auto then have "U=0(XT)U" and "AU" using closed_sets_excludedset by auto - with A have "(XT)U""AU" by auto + with A have "(XT)U""AU" by auto hence "(XT)AU" by auto } - with assms have "(A (X T)) ClosedCovers(A,ExcludedSet(X,T))" + with assms have "(A (X T)) ClosedCovers(A,ExcludedSet(X,T))" using topology0.Top_3_L3 topology0_excludedset union_excludedset by auto - with l1 have "ClosedCovers(A,ExcludedSet(X,T)) = (A(XT))" by auto + with l1 have "ClosedCovers(A,ExcludedSet(X,T)) = (A(XT))" by auto then have "Closure(A, ExcludedSet(X,T)) = A(XT)" using Closure_def by auto } @@ -617,7 +615,7 @@

Theory Topology_ZF_examples

text‹The boundary of a set is 0› if $A$ is X› or 0›, and X∩T› in other case. › -lemma boundary_excludedset: +lemma boundary_excludedset: assumes "AX" shows "Boundary(A,ExcludedSet(X,T)) = (if A=0A=X then 0 else XT)" proof- @@ -625,7 +623,7 @@

Theory Topology_ZF_examples

have "Closure(0,ExcludedSet(X,T))=0""Closure(X - 0,ExcludedSet(X,T))=X" using closure_set_excludedset by auto then have "Boundary(0,ExcludedSet(X,T)) = 0"using Boundary_def using - union_excludedset assms by auto + union_excludedset assms by auto } moreover { @@ -638,8 +636,8 @@

Theory Topology_ZF_examples

moreover { assume "A0" and "AX" - then have "X-A0" using assms by auto - with assms A0 AX have "Closure(A,ExcludedSet(X,T)) = A (XT)" + then have "X-A0" using assms by auto + with assms A0 AX have "Closure(A,ExcludedSet(X,T)) = A (XT)" using closure_set_excludedset by simp moreover from AX have "X-A X" by blast @@ -667,13 +665,13 @@

Theory Topology_ZF_examples

text‹If the set which is excluded is disjoint with X›, then the topology is discrete.› -lemma empty_excludedset: +lemma empty_excludedset: assumes "TX=0" shows "ExcludedSet(X,T) = Pow(X)" proof - from assms show "ExcludedSet(X,T) Pow(X)" using smaller_excludedset ExcludedSet_def + from assms show "ExcludedSet(X,T) Pow(X)" using smaller_excludedset ExcludedSet_def by auto - from assms show "Pow(X) ExcludedSet(X,T)" unfolding ExcludedSet_def by blast + from assms show "Pow(X) ExcludedSet(X,T)" unfolding ExcludedSet_def by blast qed text‹The topological subspaces of the ExcludedSet X T› topology @@ -685,10 +683,10 @@

Theory Topology_ZF_examples

{ fix M assume "M(ExcludedSet(X,T) {restricted to} Y)" - then obtain A where A1:"A:ExcludedSet(X,T)" "M=Y A" unfolding RestrictedTo_def by auto + then obtain A where A1:"A:ExcludedSet(X,T)" "M=Y A" unfolding RestrictedTo_def by auto then have "MPow(X Y)" unfolding ExcludedSet_def by auto moreover - from A1 have "TM=0M=YX" unfolding ExcludedSet_def by blast + from A1 have "TM=0M=YX" unfolding ExcludedSet_def by blast ultimately have "M ExcludedSet(Y X,T)" unfolding ExcludedSet_def by auto } @@ -696,7 +694,7 @@

Theory Topology_ZF_examples

{ fix M let ?A = "M ((XY-T)-Y)" - assume A:"M ExcludedSet(YX,T)" + assume A:"M ExcludedSet(YX,T)" { assume "M = Y X" then have "M ExcludedSet(X,T) {restricted to} Y" unfolding RestrictedTo_def @@ -704,19 +702,19 @@

Theory Topology_ZF_examples

} moreover { - assume AS:"MY X" - from A AS have A1:"(MPow(Y X) TM=0)" unfolding ExcludedSet_def by auto + assume AS:"MY X" + from A AS have A1:"(MPow(Y X) TM=0)" unfolding ExcludedSet_def by auto then have "?APow(X)" by blast moreover have "T?A=TM" by blast - with A1 have "T?A=0" by auto + with A1 have "T?A=0" by auto ultimately have "?A ExcludedSet(X,T)" unfolding ExcludedSet_def by auto - then have AT:"Y ?A ExcludedSet(X,T) {restricted to} Y" unfolding RestrictedTo_def + then have AT:"Y ?A ExcludedSet(X,T) {restricted to} Y" unfolding RestrictedTo_def by auto have "Y ?A=Y M" by blast - also have "=M" using A1 by auto + also have "=M" using A1 by auto finally have "Y?A = M" by simp - with AT have "M ExcludedSet(X,T) {restricted to} Y" by auto + with AT have "M ExcludedSet(X,T) {restricted to} Y" by auto } ultimately have "M ExcludedSet(X,T) {restricted to} Y" by auto } @@ -743,10 +741,10 @@

Theory Topology_ZF_examples

{ fix M assume "M Pow(IncludedSet(X,Q))" - then have A:"M{FPow(X). Q F} {0}" using IncludedSet_def by auto + then have A:"M{FPow(X). Q F} {0}" using IncludedSet_def by auto then have "MPow(X)" by auto moreover - have"Q M M=0" using A by blast + have"Q M M=0" using A by blast ultimately have "MIncludedSet(X,Q)" using IncludedSet_def by auto } moreover @@ -783,18 +781,18 @@

Theory Topology_ZF_examples

text‹The topology is defined in the set $X$.› -lemma union_includedset: +lemma union_includedset: assumes "TX " shows "IncludedSet(X,T) = X" proof- - from assms have "X IncludedSet(X,T)" using IncludedSet_def by auto + from assms have "X IncludedSet(X,T)" using IncludedSet_def by auto then show "IncludedSet(X,T) = X" using IncludedSet_def by auto qed text‹The closed sets are those which are disjoint with T› and X›.› -lemma closed_sets_includedset: +lemma closed_sets_includedset: assumes "TX" shows "D {is closed in} IncludedSet(X,T) (DPow(X) (D T)=0) D=X" proof- @@ -802,40 +800,40 @@

Theory Topology_ZF_examples

then have "X-XIncludedSet(X,T)" using IncludedSet_def by auto moreover { - assume A:"D X" "X - D IncludedSet(X,T) "" D X" - from A(2) have "T(X-D) X-D=0" using IncludedSet_def by auto - with A(1) have "T(X-D) D=X" by blast - with A(3) have "T(X-D)" by auto + assume A:"D X" "X - D IncludedSet(X,T) "" D X" + from A(2) have "T(X-D) X-D=0" using IncludedSet_def by auto + with A(1) have "T(X-D) D=X" by blast + with A(3) have "T(X-D)" by auto hence "DT=0" by blast } moreover { - assume A:"DT=0""DX" - from A(1) assms have "T(X-D)" by blast + assume A:"DT=0""DX" + from A(1) assms have "T(X-D)" by blast then have "X-DIncludedSet(X,T)" using IncludedSet_def by auto } - ultimately show ?thesis using IsClosed_def union_includedset assms by auto + ultimately show ?thesis using IsClosed_def union_includedset assms by auto qed text‹The interior of a set is itself if it is open or the empty set if it isn't.› -lemma interior_set_includedset: +lemma interior_set_includedset: assumes "AX" shows "Interior(A,IncludedSet(X,T))= (if TA then A else 0)" proof- { fix x - assume A:"Interior(A,IncludedSet(X,T)) 0 ""xT" + assume A:"Interior(A,IncludedSet(X,T)) 0 ""xT" have "Interior(A,IncludedSet(X,T)) IncludedSet(X,T)" using topology0.Top_2_L2 topology0_includedset by auto - with A(1) have "T Interior(A,IncludedSet(X,T))" using IncludedSet_def + with A(1) have "T Interior(A,IncludedSet(X,T))" using IncludedSet_def by auto - with A(2) have "x Interior(A,IncludedSet(X,T))" by auto + with A(2) have "x Interior(A,IncludedSet(X,T))" by auto then have "xA" using topology0.Top_2_L1 topology0_includedset by auto} moreover { assume "TA" - with assms have "AIncludedSet(X,T)" using IncludedSet_def by auto + with assms have "AIncludedSet(X,T)" using IncludedSet_def by auto then have "Interior(A,IncludedSet(X,T)) = A" using topology0.Top_2_L3 topology0_includedset by auto } @@ -844,22 +842,22 @@

Theory Topology_ZF_examples

text‹The closure of a set is itself if it is closed or the whole space if it is not.› -lemma closure_set_includedset: +lemma closure_set_includedset: assumes "AX" "TX" shows "Closure(A,IncludedSet(X,T)) = (if TA=0 then A else X)" proof- { assume AS:"TA=0" then have "A {is closed in} IncludedSet(X,T)" using closed_sets_includedset - assms by auto - with assms(1) have "Closure(A,IncludedSet(X,T))=A" using topology0.Top_3_L8 - topology0_includedset union_includedset assms(2) by auto + assms by auto + with assms(1) have "Closure(A,IncludedSet(X,T))=A" using topology0.Top_3_L8 + topology0_includedset union_includedset assms(2) by auto } moreover { - assume AS:"TA 0" + assume AS:"TA 0" have "XClosedCovers(A,IncludedSet(X,T))" using ClosedCovers_def - closed_sets_includedset union_includedset assms by auto + closed_sets_includedset union_includedset assms by auto then have l1:"ClosedCovers(A,IncludedSet(X,T))X" using Closure_def by auto moreover @@ -868,13 +866,13 @@

Theory Topology_ZF_examples

assume "UClosedCovers(A,IncludedSet(X,T))" then have "U{is closed in}IncludedSet(X,T)""AU" using ClosedCovers_def by auto - then have "U=X(TU)=0""AU" using closed_sets_includedset assms(2) + then have "U=X(TU)=0""AU" using closed_sets_includedset assms(2) by auto then have "U=X(TA)=0" by auto - then have "U=X" using AS by auto + then have "U=X" using AS by auto } then have "X ClosedCovers(A,IncludedSet(X,T))" using topology0.Top_3_L3 - topology0_includedset union_includedset assms by auto + topology0_includedset union_includedset assms by auto ultimately have "ClosedCovers(A,IncludedSet(X,T))=X" by auto then have "Closure(A,IncludedSet(X,T)) = X " using Closure_def by auto @@ -886,38 +884,38 @@

Theory Topology_ZF_examples

completely and
X› if T› is divided between the two sets. The case where T=0› is considered as a special case.›
-lemma boundary_includedset: +lemma boundary_includedset: assumes "AX" "TX" "T0" shows "Boundary(A,IncludedSet(X,T))=(if TA then X-A else (if TA=0 then A else X))" proof - from AX have "X-A X" by auto { assume "TA" - with assms(2,3) have "TA0" and "T(X-A)=0" by auto - with assms(1,2) X-A X have + with assms(2,3) have "TA0" and "T(X-A)=0" by auto + with assms(1,2) X-A X have "Closure(A,IncludedSet(X,T)) = X" and "Closure(X-A,IncludedSet(X,T)) = (X-A)" using closure_set_includedset by auto - with assms(2) have "Boundary(A,IncludedSet(X,T)) = X-A" + with assms(2) have "Boundary(A,IncludedSet(X,T)) = X-A" using Boundary_def union_includedset by auto } moreover { assume "~(TA)" and "TA=0" - with assms(2) have "T(X-A)0" by auto - with assms(1,2) TA=0 X-A X have + with assms(2) have "T(X-A)0" by auto + with assms(1,2) TA=0 X-A X have "Closure(A,IncludedSet(X,T)) = A" and "Closure(X-A,IncludedSet(X,T)) = X" using closure_set_includedset by auto - with assms(1,2) have "Boundary(A,IncludedSet(X,T))=A" using Boundary_def union_includedset + with assms(1,2) have "Boundary(A,IncludedSet(X,T))=A" using Boundary_def union_includedset by auto } moreover { assume "~(TA)" and "TA 0" - with assms(1,2) have "T(X-A) 0" by auto - with assms(1,2) TA0 X-A X have + with assms(1,2) have "T(X-A) 0" by auto + with assms(1,2) TA0 X-A X have "Closure(A,IncludedSet(X,T)) = X" and "Closure(X-A,IncludedSet(X,T)) = X" using closure_set_includedset by auto - with assms(2) have "Boundary(A,IncludedSet(X,T)) = X" + with assms(2) have "Boundary(A,IncludedSet(X,T)) = X" using Boundary_def union_includedset by auto } ultimately show ?thesis by auto @@ -941,11 +939,11 @@

Theory Topology_ZF_examples

text‹If the set which is included is not a subset of X›, then the topology is trivial.› -lemma empty_includedset: +lemma empty_includedset: assumes "~(TX)" shows "IncludedSet(X,T) = {0}" proof - from assms show "IncludedSet(X,T) {0}" and "{0} IncludedSet(X,T)" + from assms show "IncludedSet(X,T) {0}" and "{0} IncludedSet(X,T)" unfolding IncludedSet_def by auto qed @@ -955,18 +953,18 @@

Theory Topology_ZF_examples

is never trivial. There is no need for a separate proof because the only subspace of the trivial topology is itself.›
-lemma subspace_includedset: +lemma subspace_includedset: assumes "TX" shows "IncludedSet(X,T) {restricted to} Y = IncludedSet(YX,YT)" proof { fix M assume "M (IncludedSet(X,T) {restricted to} Y)" - then obtain A where A1:"A:IncludedSet(X,T)" "M = YA" unfolding RestrictedTo_def + then obtain A where A1:"A:IncludedSet(X,T)" "M = YA" unfolding RestrictedTo_def by auto then have "M Pow(XY)" unfolding IncludedSet_def by auto moreover - from A1 have "YTM M=0" unfolding IncludedSet_def by blast + from A1 have "YTM M=0" unfolding IncludedSet_def by blast ultimately have "M IncludedSet(YX, YT)" unfolding IncludedSet_def by auto } @@ -975,7 +973,7 @@

Theory Topology_ZF_examples

{ fix M let ?A = "M T" - assume A:"M IncludedSet(YX, YT)" + assume A:"M IncludedSet(YX, YT)" { assume "M=0" then have "MIncludedSet(X,T) {restricted to} Y" unfolding RestrictedTo_def @@ -983,18 +981,18 @@

Theory Topology_ZF_examples

} moreover { - assume AS:"M0" - from A AS have A1:"MPow(YX) YTM" unfolding IncludedSet_def by auto - then have "?APow(X)" using assms by blast + assume AS:"M0" + from A AS have A1:"MPow(YX) YTM" unfolding IncludedSet_def by auto + then have "?APow(X)" using assms by blast moreover have "T?A" by blast ultimately have "?A IncludedSet(X,T)" unfolding IncludedSet_def by auto - then have AT:"Y ?A IncludedSet(X,T) {restricted to} Y"unfolding RestrictedTo_def + then have AT:"Y ?A IncludedSet(X,T) {restricted to} Y"unfolding RestrictedTo_def by auto - from A1 have "Y ?A=Y M" by blast - also from A1 have "=M" by auto + from A1 have "Y ?A=Y M" by blast + also from A1 have "=M" by auto finally have "Y?A = M" by simp - with AT have "M IncludedSet(X,T) {restricted to} Y" + with AT have "M IncludedSet(X,T) {restricted to} Y" by auto } ultimately have "M IncludedSet(X,T) {restricted to} Y" by auto diff --git a/docs/IsarMathLib/UniformSpace_ZF.html b/docs/IsarMathLib/UniformSpace_ZF.html index 93b0402..ada6cfa 100644 --- a/docs/IsarMathLib/UniformSpace_ZF.html +++ b/docs/IsarMathLib/UniformSpace_ZF.html @@ -47,7 +47,7 @@

Theory UniformSpace_ZF

text‹ This theory defines uniform spaces and proves their basic properties. › -subsection‹ Definition and motivation › +subsection‹ Entourages and neighborhoods › text‹ Just like a topological space constitutes the minimal setting in which one can speak of continuous functions, the notion of uniform spaces @@ -70,29 +70,35 @@

Theory UniformSpace_ZF

"Φ {is a uniformity on} X (Φ {is a filter on} (X×X)) (UΦ. id(X) U (VΦ. V O V U) converse(U) Φ)" +text‹Since the whole $X\times X$ is in a uniformity, a uniformity is never empty.› + +lemma uniformity_non_empty: assumes "Φ {is a uniformity on} X" + shows "Φ" + using assms unfolding IsUniformity_def IsFilter_def by auto + text‹ If $\Phi$ is a uniformity on $X$, then the every element $V$ of $\Phi$ is a certain relation on $X$ (a subset of $X\times X$) and is called an ''entourage''. For an $x\in X$ we call $V\{ x\}$ a neighborhood of $x$. The first useful fact we will show is that neighborhoods are non-empty. › -lemma neigh_not_empty: +lemma neigh_not_empty: assumes "Φ {is a uniformity on} X" "WΦ" and "xX" - shows "W``{x} 0" and "x W``{x}" + shows "W``{x} " and "x W``{x}" proof - - from assms(1,2) have "id(X) W" + from assms(1,2) have "id(X) W" unfolding IsUniformity_def IsFilter_def by auto - with xX show" xW``{x}" and "W``{x} 0" by auto + with xX show" xW``{x}" and "W``{x} " by auto qed text‹The filter part of the definition of uniformity for easier reference:› -lemma unif_filter: assumes "Φ {is a uniformity on} X" +lemma unif_filter: assumes "Φ {is a uniformity on} X" shows "Φ {is a filter on} (X×X)" - using assms unfolding IsUniformity_def by simp + using assms unfolding IsUniformity_def by simp text‹The second part of the definition of uniformity for easy reference:› -lemma entourage_props: +lemma entourage_props: assumes "Φ {is a uniformity on} X" and "AΦ" shows "A X×X" @@ -100,9 +106,9 @@

Theory UniformSpace_ZF

"VΦ. V O V A" "converse(A) Φ" proof - - from assms show "id(X) A" "VΦ. V O V A" "converse(A) Φ" + from assms show "id(X) A" "VΦ. V O V A" "converse(A) Φ" unfolding IsUniformity_def by auto - from assms show "A X×X" + from assms show "A X×X" using unif_filter unfolding IsFilter_def by blast qed @@ -110,13 +116,13 @@

Theory UniformSpace_ZF

of uniformity $\Phi$ there is another one, say $V$ such that $V\circ V\subseteq U$. Sometimes such $V$ is said to be half the size of $U$. The next lemma states that $V$ can be taken to be symmetric. ›
-lemma half_size_symm: assumes "Φ {is a uniformity on} X" "WΦ" +lemma half_size_symm: assumes "Φ {is a uniformity on} X" "WΦ" shows "VΦ. V O V W V=converse(V)" proof - - from assms obtain U where "UΦ" and "U O U W" + from assms obtain U where "UΦ" and "U O U W" unfolding IsUniformity_def by auto let ?V = "U converse(U)" - from assms(1) UΦ have "?V Φ" and "?V = converse(?V)" + from assms(1) UΦ have "?V Φ" and "?V = converse(?V)" unfolding IsUniformity_def IsFilter_def by auto moreover from U O U W have "?V O ?V W" by auto ultimately show ?thesis by blast @@ -125,16 +131,16 @@

Theory UniformSpace_ZF

text‹Inside every member $W$ of the uniformity $\Phi$ we can find one that is symmetric and smaller than a third of size $W$. Compare with the Metamath's theorem with the same name.› -lemma ustex3sym: assumes "Φ {is a uniformity on} X" "AΦ" +lemma ustex3sym: assumes "Φ {is a uniformity on} X" "AΦ" shows "BΦ. B O (B O B) A B=converse(B)" proof - - from assms obtain C where "CΦ" and "C O C A" + from assms obtain C where "CΦ" and "C O C A" unfolding IsUniformity_def by auto - from assms(1) CΦ obtain B where + from assms(1) CΦ obtain B where "BΦ" "B O B C" and "B=converse(B)" using half_size_symm by blast with C O C A have "(B O B) O (B O B) A" by blast - with assms(1) BΦ have "B O (B O B) A" + with assms(1) BΦ have "B O (B O B) A" using entourage_props(1,2) by blast with BΦ B=converse(B) show ?thesis by blast qed @@ -142,17 +148,17 @@

Theory UniformSpace_ZF

text‹If $\Phi$ is a uniformity on $X$ then every element of $\Phi$ is a subset of $X\times X$ whose domain is $X$. › -lemma uni_domain: +lemma uni_domain: assumes "Φ {is a uniformity on} X" "WΦ" shows "W X×X" and "domain(W) = X" proof - - from assms show "W X×X" unfolding IsUniformity_def IsFilter_def + from assms show "W X×X" unfolding IsUniformity_def IsFilter_def by blast show "domain(W) = X" proof - from assms show "domain(W) X" unfolding IsUniformity_def IsFilter_def + from assms show "domain(W) X" unfolding IsUniformity_def IsFilter_def by auto - from assms show "X domain(W)" unfolding IsUniformity_def by blast + from assms show "X domain(W)" unfolding IsUniformity_def by blast qed qed @@ -160,10 +166,10 @@

Theory UniformSpace_ZF

the image of the singleton $\{ x\}$ by $W$ is contained in $X$. Compare the Metamath's theorem with the same name. ›
-lemma ustimasn: +lemma ustimasn: assumes "Φ {is a uniformity on} X" "WΦ" and "xX" shows "W``{x} X" - using assms uni_domain(1) by auto + using assms uni_domain(1) by auto text‹ Uniformity Φ› defines a natural topology on its space $X$ via the neighborhood system that assigns the collection $\{V(\{x\}):V\in \Phi\}$ to every point $x\in X$. @@ -172,38 +178,38 @@

Theory UniformSpace_ZF

fact which is useful to shorten the remaining proofs, usually treated as obvious in standard mathematics. ›
-lemma neigh_filt_fun: +lemma neigh_filt_fun: assumes "Φ {is a uniformity on} X" defines " {x,{V``{x}.VΦ}.xX}" shows ":XPow(Pow(X))" and "xX. `(x) = {V``{x}.VΦ}" proof - - from assms have "xX. {V``{x}.VΦ} Pow(Pow(X))" + from assms have "xX. {V``{x}.VΦ} Pow(Pow(X))" using IsUniformity_def IsFilter_def image_subset by auto - with assms show ":XPow(Pow(X))" using ZF_fun_from_total by simp - with assms show "xX. `(x) = {V``{x}.VΦ}" using ZF_fun_from_tot_val + with assms show ":XPow(Pow(X))" using ZF_fun_from_total by simp + with assms show "xX. `(x) = {V``{x}.VΦ}" using ZF_fun_from_tot_val by simp qed text‹ In the next lemma we show that the collection defined in lemma neigh_filt_fun› is a filter on $X$. The proof is kind of long, but it just checks that all filter conditions hold.› -lemma filter_from_uniformity: +lemma filter_from_uniformity: assumes "Φ {is a uniformity on} X" and "xX" defines " {x,{V``{x}.VΦ}.xX}" shows "`(x) {is a filter on} X" proof - - from assms have PhiFilter: "Φ {is a filter on} (X×X)" and + from assms have PhiFilter: "Φ {is a filter on} (X×X)" and ":XPow(Pow(X))" and "`(x) = {V``{x}.VΦ}" using IsUniformity_def neigh_filt_fun by auto - have "0 `(x)" + have " `(x)" proof - - from assms xX have "0 {V``{x}.VΦ}" using neigh_not_empty by blast - with `(x) = {V``{x}.VΦ} show "0 `(x)" by simp + from assms xX have " {V``{x}.VΦ}" using neigh_not_empty by blast + with `(x) = {V``{x}.VΦ} show " `(x)" by simp qed moreover have "X `(x)" proof - note `(x) = {V``{x}.VΦ} - moreover from assms have "X×X Φ" unfolding IsUniformity_def IsFilter_def + moreover from assms have "X×X Φ" unfolding IsUniformity_def IsFilter_def by blast hence "(X×X)``{x} {V``{x}.VΦ}" by auto moreover from xX have "(X×X)``{x} = X" by auto @@ -211,17 +217,17 @@

Theory UniformSpace_ZF

qed moreover from :XPow(Pow(X)) xX have "`(x) Pow(X)" using apply_funtype by blast - moreover have LargerIn: "B `(x). C Pow(X). BC C `(x)" + moreover have LargerIn: "B `(x). C Pow(X). BC C `(x)" proof - { fix B assume "B `(x)" fix C assume "C Pow(X)" and "BC" from `(x) = {V``{x}.VΦ} B `(x) obtain U where "UΦ" and "B = U``{x}" by auto let ?V = "U C×C" - from assms UΦ C Pow(X) have "?V Pow(X×X)" and "U?V" + from assms UΦ C Pow(X) have "?V Pow(X×X)" and "U?V" using IsUniformity_def IsFilter_def by auto - with UΦ PhiFilter have "?VΦ" using IsFilter_def by simp - moreover from assms UΦ xX B = U``{x} BC have "C = ?V``{x}" + with UΦ PhiFilter have "?VΦ" using IsFilter_def by simp + moreover from assms UΦ xX B = U``{x} BC have "C = ?V``{x}" using neigh_not_empty image_greater_rel by simp ultimately have "C {V``{x}.VΦ}" by auto with `(x) = {V``{x}.VΦ} have "C `(x)" by simp @@ -234,13 +240,13 @@

Theory UniformSpace_ZF

"A = VA``{x}" "B = VB``{x}" and "VA Φ" "VB Φ" by auto let ?C = "VA``{x} VB``{x}" - from assms VA Φ VB Φ have "VAVB Φ" using IsUniformity_def IsFilter_def + from assms VA Φ VB Φ have "VAVB Φ" using IsUniformity_def IsFilter_def by simp with `(x) = {V``{x}.VΦ} have "(VAVB)``{x} `(x)" by auto - moreover from PhiFilter VA Φ VB Φ have "?C Pow(X)" unfolding IsFilter_def + moreover from PhiFilter VA Φ VB Φ have "?C Pow(X)" unfolding IsFilter_def by auto moreover have "(VAVB)``{x} ?C" using image_Int_subset_left by simp - moreover note LargerIn + moreover note LargerIn ultimately have "?C `(x)" by simp with A = VA``{x} B = VB``{x} have "AB `(x)" by blast } thus ?thesis by simp @@ -251,20 +257,20 @@

Theory UniformSpace_ZF

text‹A rephrasing of filter_from_uniformity›: if $\Phi$ is a uniformity on $X$, then $\{V(\{ x\}) | V\in \Phi\}$ is a filter on $X$ for every $x\in X$.› -lemma unif_filter_at_point: +lemma unif_filter_at_point: assumes "Φ {is a uniformity on} X" and "xX" shows "{V``{x}.VΦ} {is a filter on} X" - using assms filter_from_uniformity ZF_fun_from_tot_val1 + using assms filter_from_uniformity ZF_fun_from_tot_val1 by simp text‹A frequently used property of filters is that they are "upward closed" i.e. supersets of a filter element are also in the filter. The next lemma makes this explicit for easy reference as applied to the natural filter created from a uniformity.› -corollary unif_filter_up_closed: +corollary unif_filter_up_closed: assumes "Φ {is a uniformity on} X" "xX" "U {V``{x}. VΦ}" "WX" "UW" shows "W {V``{x}.VΦ}" - using assms filter_from_uniformity ZF_fun_from_tot_val1 + using assms filter_from_uniformity ZF_fun_from_tot_val1 unfolding IsFilter_def by auto text‹ The function defined in the premises of lemma neigh_filt_fun› @@ -272,14 +278,14 @@

Theory UniformSpace_ZF

of the "half-the-size" neighborhood condition (
∃V∈Φ. V O V ⊆ U›) of the uniformity definition, but not the converse(U) ∈ Φ› part. ›
-theorem neigh_from_uniformity: +theorem neigh_from_uniformity: assumes "Φ {is a uniformity on} X" shows "{x,{V``{x}.VΦ}.xX} {is a neighborhood system on} X" proof - let ?ℳ = "{x,{V``{x}.VΦ}.xX}" - from assms have "?ℳ:XPow(Pow(X))" and Mval: "xX. ?ℳ`(x) = {V``{x}.VΦ}" + from assms have "?ℳ:XPow(Pow(X))" and Mval: "xX. ?ℳ`(x) = {V``{x}.VΦ}" using IsUniformity_def neigh_filt_fun by auto - moreover from assms have "xX. (?ℳ`(x) {is a filter on} X)" using filter_from_uniformity + moreover from assms have "xX. (?ℳ`(x) {is a filter on} X)" using filter_from_uniformity by simp moreover { fix x assume "xX" @@ -288,21 +294,21 @@

Theory UniformSpace_ZF

{ fix N assume "N?ℳ`(x)" have "xN" and "U?ℳ`(x).yU.(N ?ℳ`(y))" proof - - from ?ℳ:XPow(Pow(X)) Mval xX N?ℳ`(x) + from ?ℳ:XPow(Pow(X)) Mval xX N?ℳ`(x) obtain U where "UΦ" and "N = U``{x}" by auto - with assms xX show "xN" using neigh_not_empty by simp - from assms UΦ obtain V where "VΦ" and "V O V U" + with assms xX show "xN" using neigh_not_empty by simp + from assms UΦ obtain V where "VΦ" and "V O V U" unfolding IsUniformity_def by auto let ?W = "V``{x}" - from VΦ Mval xX have "?W ?ℳ`(x)" by auto + from VΦ Mval xX have "?W ?ℳ`(x)" by auto moreover have "y?W. N ?ℳ`(y)" proof - { fix y assume "y?W" with ?ℳ:XPow(Pow(X)) xX ?W ?ℳ`(x) have "yX" using apply_funtype by blast - with assms have "?ℳ`(y) {is a filter on} X" using filter_from_uniformity + with assms have "?ℳ`(y) {is a filter on} X" using filter_from_uniformity by simp - moreover from assms yX VΦ have "V``{y} ?ℳ`(y)" + moreover from assms yX VΦ have "V``{y} ?ℳ`(y)" using neigh_filt_fun by auto moreover from ?ℳ:XPow(Pow(X)) xX N ?ℳ`(x) have "N Pow(X)" using apply_funtype by blast @@ -347,11 +353,11 @@

Theory UniformSpace_ZF

text‹ The collection of sets constructed in the UniformTopology › definition is indeed a topology on $X$. › -theorem uniform_top_is_top: +theorem uniform_top_is_top: assumes "Φ {is a uniformity on} X" shows "UniformTopology(Φ,X) {is a topology}" and " UniformTopology(Φ,X) = X" - using assms neigh_from_uniformity uniftop_def_alt topology_from_neighs + using assms neigh_from_uniformity uniftop_def_alt topology_from_neighs by auto text‹If we have a uniformity $\Phi$ we can create a neighborhood system from it in two ways. @@ -362,27 +368,27 @@

Theory UniformSpace_ZF

as in theorem
neigh_from_topology›. The next theorem states that these two ways give the same result. ›
-theorem neigh_unif_same: assumes "Φ {is a uniformity on} X" +theorem neigh_unif_same: assumes "Φ {is a uniformity on} X" shows "{x,{V``{x}.VΦ}. xX} = {neighborhood system of} UniformTopology(Φ,X)" - using assms neigh_from_uniformity nei_top_nei_round_trip uniftop_def_alt + using assms neigh_from_uniformity nei_top_nei_round_trip uniftop_def_alt by simp text‹Another form of the definition of topology generated from a uniformity.› -lemma uniftop_def_alt1: assumes "Φ {is a uniformity on} X" +lemma uniftop_def_alt1: assumes "Φ {is a uniformity on} X" shows "UniformTopology(Φ,X) = {UPow(X). xU. WΦ. W``{x} U}" proof let ?T = "UniformTopology(Φ,X)" show "?T {UPow(X). xU. WΦ. W``{x} U}" unfolding UniformTopology_def by auto { fix U assume "U{UPow(X). xU. WΦ. W``{x} U}" - then have "UPow(X)" and I: "xU. WΦ. W``{x} U" by auto + then have "UPow(X)" and I: "xU. WΦ. W``{x} U" by auto { fix x assume "xU" - with I obtain W where "WΦ" and "W``{x} U" + with I obtain W where "WΦ" and "W``{x} U" by auto let ?𝔉 = "{V``{x}.VΦ}" - from assms(1) UPow(X) xU WΦ have + from assms(1) UPow(X) xU WΦ have "?𝔉 {is a filter on} X" and "W``{x} ?𝔉" using unif_filter_at_point by auto with UPow(X) W``{x} U have "U?𝔉" @@ -396,14 +402,14 @@

Theory UniformSpace_ZF

text‹Images of singletons by entourages are neighborhoods of those singletons.› -lemma image_singleton_ent_nei: +lemma image_singleton_ent_nei: assumes "Φ {is a uniformity on} X" "VΦ" "xX" defines " {neighborhood system of} UniformTopology(Φ,X)" shows "V``{x} `(x)" proof - - from assms(1,4) have " = {x,{V``{x}.VΦ}. xX}" + from assms(1,4) have " = {x,{V``{x}.VΦ}. xX}" using neigh_unif_same by simp - with assms(2,3) show ?thesis + with assms(2,3) show ?thesis using ZF_fun_from_tot_val1 by auto qed @@ -411,20 +417,20 @@

Theory UniformSpace_ZF

of images of the singleton by the entourages $W\in \Phi$. See also the Metamath's theorem with the same name. ›
-lemma utopsnneip: assumes "Φ {is a uniformity on} X" "xX" +lemma utopsnneip: assumes "Φ {is a uniformity on} X" "xX" defines "𝒮 {set neighborhood system of} UniformTopology(Φ,X)" shows "𝒮`{x} = {W``{x}. WΦ}" proof - let ?T = "UniformTopology(Φ,X)" let ?ℳ = "{neighborhood system of} ?T" - from assms(1,2) have "x ?T" + from assms(1,2) have "x ?T" using uniform_top_is_top(2) by simp - with assms(3) have "?ℳ`(x) = 𝒮`{x}" + with assms(3) have "?ℳ`(x) = 𝒮`{x}" using neigh_from_nei by simp moreover - from assms(1) have "?ℳ = {x,{W``{x}.WΦ}. xX}" + from assms(1) have "?ℳ = {x,{W``{x}.WΦ}. xX}" using neigh_unif_same by simp - with assms(2) have "?ℳ`(x) = {W``{x}.WΦ}" + with assms(2) have "?ℳ`(x) = {W``{x}.WΦ}" using ZF_fun_from_tot_val1 by simp ultimately show ?thesis by simp qed @@ -432,9 +438,9 @@

Theory UniformSpace_ZF

text‹Images of singletons by entourages are set neighborhoods of those singletons. See also the Metamath theorem with the same name.› -corollary utopsnnei: assumes "Φ {is a uniformity on} X" "WΦ" "xX" +corollary utopsnnei: assumes "Φ {is a uniformity on} X" "WΦ" "xX" defines "𝒮 {set neighborhood system of} UniformTopology(Φ,X)" - shows "W``{x} 𝒮`{x}" using assms utopsnneip by auto + shows "W``{x} 𝒮`{x}" using assms utopsnneip by auto text‹If $\Phi$ is a uniformity on $X$ that generates a topology $T$, $R$ is any relation on $X$ (i.e. $R\subseteq X\times X$), $W$ is a symmetric entourage (i.e. $W\in \Phi$, @@ -442,33 +448,33 @@

Theory UniformSpace_ZF

is contained the the composition $V\circ (M \circ V)$. Metamath has a similar theorem with the same name. ›
-lemma utop3cls: +lemma utop3cls: assumes "Φ {is a uniformity on} X" "RX×X" "WΦ" "W=converse(W)" defines "J UniformTopology(Φ,X)" shows "Closure(R,J×tJ) W O (R O W)" proof let ?M = "{set neighborhood system of} (J×tJ)" - fix z assume zMem: "z Closure(R,J×tJ)" - from assms(1,5) have Jtop: "J {is a topology}" and "J = X" + fix z assume zMem: "z Closure(R,J×tJ)" + from assms(1,5) have Jtop: "J {is a topology}" and "J = X" using uniform_top_is_top by auto - then have JJtop: "(J×tJ) {is a topology}" and JxJ: "(J×tJ) = X×X" + then have JJtop: "(J×tJ) {is a topology}" and JxJ: "(J×tJ) = X×X" using Top_1_4_T1(1,3) by auto - with assms(2) have "topology0(J×tJ)" and "R (J×tJ)" + with assms(2) have "topology0(J×tJ)" and "R (J×tJ)" unfolding topology0_def by auto then have "Closure(R,J×tJ) (J×tJ)" using topology0.Top_3_L11(1) by simp - with z Closure(R,J×tJ) JxJ have "zX×X" by auto + with z Closure(R,J×tJ) JxJ have "zX×X" by auto let ?x = "fst(z)" let ?y = "snd(z)" from zX×X have "?xX" "?yX" "z = ?x,?y" by auto - with assms(1,3,5) Jtop have "(W``{?x})×(W``{?y}) ?M`({?x}×{?y})" + with assms(1,3,5) Jtop have "(W``{?x})×(W``{?y}) ?M`({?x}×{?y})" using utopsnnei neitx by simp moreover from z = ?x,?y have "{?x}×{?y} = {z}" by (rule pair_prod) ultimately have "(W``{?x})×(W``{?y}) ?M`{z}" by simp - with zMem JJtop R (J×tJ) have "(W``{?x})×(W``{?y}) R 0" + with zMem JJtop R (J×tJ) have "(W``{?x})×(W``{?y}) R " using neindisj by blast - with assms(4) have "?x,?y W O (R O W)" + with assms(4) have "?x,?y W O (R O W)" using sym_rel_comp by simp with z = ?x,?y show "z W O (R O W)" by simp @@ -476,14 +482,14 @@

Theory UniformSpace_ZF

text‹Uniform spaces are regular ($T_3$). › -theorem utopreg: +theorem utopreg: assumes "Φ {is a uniformity on} X" shows "UniformTopology(Φ,X) {is regular}" proof - let ?J = "UniformTopology(Φ,X)" let ?𝒮 = "{set neighborhood system of} ?J" - from assms have "?J = X" - and Jtop: "?J {is a topology}" and cntx: "topology0(?J)" + from assms have "?J = X" + and Jtop: "?J {is a topology}" and cntx: "topology0(?J)" using uniform_top_is_top unfolding topology0_def by auto have "U?J. xU. V?J. xV Closure(V,?J)U" proof - @@ -491,13 +497,13 @@

Theory UniformSpace_ZF

then have "U ?𝒮`{x}" using open_nei_singl by simp from U?J have "U?J" by auto with xU ?J = X have "xX" by auto - from assms(1) xX U ?𝒮`{x} obtain A + from assms(1) xX U ?𝒮`{x} obtain A where "U=A``{x}" and "AΦ" using utopsnneip by auto - from assms(1) AΦ obtain W where - "WΦ" "W O (W O W) A" and Wsymm: "W=converse(W)" + from assms(1) AΦ obtain W where + "WΦ" "W O (W O W) A" and Wsymm: "W=converse(W)" using ustex3sym by blast - with assms(1) xX have "W``{x} ?𝒮`{x}" and "W``{x} X" + with assms(1) xX have "W``{x} ?𝒮`{x}" and "W``{x} X" using utopsnnei ustimasn by auto from W``{x} ?𝒮`{x} have "V?J. {x}V VW``{x}" by (rule neii2) @@ -505,9 +511,9 @@

Theory UniformSpace_ZF

by blast have "Closure(V,?J) U" proof - - from assms(1) WΦ ?J = X have "W X×X" + from assms(1) WΦ ?J = X have "W X×X" using entourage_props(1) by simp - from cntx W``{x} X ?J = X VW``{x} + from cntx W``{x} X ?J = X VW``{x} have "Closure(V,?J) Closure(W``{x},?J)" using topology0.top_closure_mono by simp also have "Closure(W``{x},?J) Closure(W,?J×t?J)``{x}" @@ -517,7 +523,7 @@

Theory UniformSpace_ZF

with ?J {is a topology} show ?thesis using imasncls by simp qed - also from assms(1) WX×X WΦ Wsymm W O (W O W) A + also from assms(1) WX×X WΦ Wsymm W O (W O W) A have "Closure(W,?J×t?J)``{x} A``{x}" using utop3cls by blast finally have "Closure(V,?J) A``{x}" @@ -528,10 +534,229 @@

Theory UniformSpace_ZF

by blast } thus ?thesis by simp qed - with Jtop show "?J {is regular}" using is_regular_def_alt + with Jtop show "?J {is regular}" using is_regular_def_alt + by simp +qed + +subsection‹ Base of a uniformity › + +text‹A base› or a fundamental system of entourages› of a uniformity $\Phi$ is + a subset of $\Phi$ that is sufficient to uniquely determine it. This is + analogous to the notion of a base of a topology (see Topology_ZF_1› or a base of a filter + (see Topology_ZF_4›). › + +text‹A base of a uniformity $\Phi$ is any subset $\mathfrak{B}\subseteq \Phi$ such that + every entourage in $\Phi$ contains (at least) one from $\mathfrak{B}$. + The phrase is a base for› is already defined to mean a base for a topology, + so we use the phrase is a uniform base of› here. › + +definition + IsUniformityBase ("_ {is a uniform base of} _" 90) where + "𝔅 {is a uniform base of} Φ 𝔅 Φ (UΦ. B𝔅. BU)" + +text‹Symmetric entourages form a base of the uniformity.› + +lemma symm_are_base: assumes "Φ {is a uniformity on} X" + shows "{VΦ. V = converse(V)} {is a uniform base of} Φ" +proof - + let ?𝔅 = "{VΦ. V = converse(V)}" + { fix W assume "WΦ" + with assms obtain V where "VΦ" "V O V W" "V=converse(V)" + using half_size_symm by blast + from assms VΦ have "V V O V" + using entourage_props(1,2) refl_square_greater by blast + with V O V W VΦ V=converse(V) have "V?𝔅. VW" by auto + } hence "WΦ. V?𝔅. V W" by auto + then show ?thesis unfolding IsUniformityBase_def by auto +qed + +text‹Given a base of a uniformity we can recover the uniformity taking the supersets. + The Supersets› constructor is defined in ZF1›.› + +lemma uniformity_from_base: + assumes "Φ {is a uniformity on} X" "𝔅 {is a uniform base of} Φ" + shows "Φ = Supersets(X×X,𝔅)" +proof + from assms show "Φ Supersets(X×X,𝔅)" + unfolding IsUniformityBase_def Supersets_def + using entourage_props(1) by auto + from assms show "Supersets(X×X,𝔅) Φ" + unfolding Supersets_def IsUniformityBase_def IsUniformity_def IsFilter_def + by auto +qed + +text‹Analogous to the predicate "satisfies base condition" (defined in Topology_ZF_1›) + and "is a base filter" (defined in Topology_ZF_4›) we can specify conditions + for a collection $\mathfrak{B}$ of subsets of $X\times X$ to be a base of some + uniformity on $X$. Namely, the following conditions are necessary and sufficient: + + 1. Intersection of two sets of $\mathfrak{B}$ contains a set of $\mathfrak{B}$. + + 2. Every set of $\mathfrak{B}$ contains the diagonal of $X\times X$. + + 3. For each set $B_1\in \mathfrak{B}$ we can find a set $B_2\in \mathfrak{B}$ + such that $B_2\subseteq B_1^{-1}$. + + 4. For each set $B_1\in \mathfrak{B}$ we can find a set $B_2\in \mathfrak{B}$ + such that $B_2\circ B_2 \subseteq B_1$. + + The conditions are taken from + N. Bourbaki "Elements of Mathematics, General Topology", Chapter II.1., + except for the last two that are missing there.› + +definition + IsUniformityBaseOn ("_ {is a uniform base on} _" 90) where + "𝔅 {is a uniform base on} X + (B1𝔅. B2𝔅. B3𝔅. B3B1B2) (B𝔅. id(X)B) + (B1𝔅. B2𝔅. B2 converse(B1)) (B1𝔅. B2𝔅. B2 O B2 B1) + 𝔅Pow(X×X) 𝔅" + +text‹The next lemma splits the definition of IsUniformityBaseOn› into four conditions + to enable more precise references in proofs.› + +lemma uniformity_base_props: assumes "𝔅 {is a uniform base on} X" + shows + "B1𝔅. B2𝔅. B3𝔅. B3B1B2" + "B𝔅. id(X)B" + "B1𝔅. B2𝔅. B2 converse(B1)" + "B1𝔅. B2𝔅. B2 O B2 B1" + "𝔅Pow(X×X)" and "𝔅" + using assms unfolding IsUniformityBaseOn_def by simp_all + +text‹If supersets of some collection of subsets of $X\times X$ form a uniformity, + then this collection satisfies the conditions in the definition of IsUniformityBaseOn›. › + +theorem base_is_uniform_base: + assumes "𝔅Pow(X×X)" and "Supersets(X×X,𝔅) {is a uniformity on} X" + shows "𝔅 {is a uniform base on} X" +proof - + let = "Supersets(X×X,𝔅)" + have "B1𝔅. B2𝔅. B3𝔅. B3B1B2" + proof - + { fix B1 B2 assume "B1𝔅" "B2𝔅" + with assms(1) have "B1" and "B2" unfolding Supersets_def by auto + with assms(2) have "B3𝔅. B3 B1B2" + unfolding IsUniformity_def IsFilter_def Supersets_def by simp + } thus ?thesis by simp + qed + moreover have "B𝔅. id(X)B" + proof - + { fix B assume "B𝔅" + with assms(1) have "B" unfolding Supersets_def by auto + with assms(2) have "id(X)B" unfolding IsUniformity_def by simp + } thus ?thesis by simp + qed + moreover have "B1𝔅. B2𝔅. B2 converse(B1)" + proof - + { fix B1 assume "B1𝔅" + with assms(1) have "B1" unfolding Supersets_def by auto + with assms have "B2𝔅. B2 converse(B1)" + unfolding IsUniformity_def Supersets_def by auto + } thus ?thesis by simp + qed + moreover have "B1𝔅. B2𝔅. B2 O B2 B1" + proof - + { fix B1 assume "B1𝔅" + with assms(1) have "B1" unfolding Supersets_def by auto + with assms(2) obtain V where "V" and "V O V B1" + unfolding IsUniformity_def by blast + from assms(2) V obtain B2 where "B2𝔅" and "B2V" + unfolding Supersets_def by auto + from V O V B1 B2V have "B2 O B2 B1" by auto + with B2𝔅 have "B2𝔅. B2 O B2 B1" by auto + } thus ?thesis by simp + qed + moreover from assms(2) have "𝔅" + using supersets_of_empty uniformity_non_empty by blast + ultimately show "𝔅 {is a uniform base on} X" + unfolding IsUniformityBaseOn_def using assms(1) by simp +qed + +text‹if a nonempty collection of subsets of $X\times X$ satisfies conditions in the definition + of IsUniformityBaseOn› then the supersets of that collection form a uniformity on $X$.› + +theorem uniformity_base_is_base: + assumes "X" and "𝔅 {is a uniform base on} X" + shows "Supersets(X×X,𝔅) {is a uniformity on} X" +proof - + let = "Supersets(X×X,𝔅)" + from assms(2) have "𝔅Pow(X×X)" using uniformity_base_props(5) by simp + have " {is a filter on} (X×X)" + proof - + from assms have "" + unfolding Supersets_def using uniformity_base_props(2) + by blast + moreover have "X×X " + proof - + from assms(2) obtain B where "B𝔅" + using uniformity_base_props(6) by blast + with 𝔅Pow(X×X) show "X×X " unfolding Supersets_def + by blast + qed + moreover have " Pow(X×X)" unfolding Supersets_def by auto + moreover have "U. V. UV " + proof - + { fix U V assume "U" "V" + then obtain B1 B2 where "B1𝔅" "B2𝔅" "B1U" "B2V" + unfolding Supersets_def by auto + from assms(2) B1𝔅 B2𝔅 obtain B3 where "B3𝔅" and "B3B1B2" + using uniformity_base_props(1) by blast + from B1U B2V B3B1B2 have "B3UV" by auto + with U V B3𝔅 have "UV " + unfolding Supersets_def by auto + } thus ?thesis by simp + qed + moreover have "U. CPow(X×X). UC C" + proof - + { fix U C assume "U" "CPow(X×X)" "UC" + from U obtain B where "B𝔅" and "BU" + unfolding Supersets_def by auto + with UC CPow(X×X) have "C" + unfolding Supersets_def by auto + } thus ?thesis by auto + qed + ultimately show " {is a filter on} (X×X)" + unfolding IsFilter_def by simp + qed + moreover have "U. id(X) U (V. V O V U) converse(U) " + proof - + { fix U assume "U" + then obtain B where "B𝔅" and "BU" + unfolding Supersets_def by auto + with assms(2) have "id(X) U" + using uniformity_base_props(2) by blast + moreover + from assms(2) B𝔅 obtain V where "V𝔅" and "V O V B" + using uniformity_base_props(4) by blast + with 𝔅Pow(X×X) have "V" using superset_gen by auto + with V O V B BU have "V. V O V U" by blast + moreover + from assms(2) B𝔅 BU obtain W where "W𝔅" and "W converse(U)" + using uniformity_base_props(3) by blast + with U have "converse(U) " unfolding Supersets_def + by auto + ultimately have "id(X) U (V. V O V U) converse(U) " + by simp + } thus ?thesis by simp + qed + ultimately show ?thesis unfolding IsUniformity_def by simp qed +text‹The assumption that $X$ is not empty in uniformity_base_is_base› above is neccessary + as the assertion is false if $X$ is empty.› + +lemma uniform_space_empty: assumes "𝔅 {is a uniform base on} " + shows "¬(Supersets(×,𝔅) {is a uniformity on} )" +proof - + { let = "Supersets(×,𝔅)" + assume " {is a uniformity on} " + from assms have "𝔅={}" using uniformity_base_props(5,6) by force + with {is a uniformity on} have False + using supersets_in_empty unif_filter unfolding IsFilter_def by auto + } thus ?thesis by auto +qed + end diff --git a/docs/IsarMathLib/UniformSpace_ZF_2.html b/docs/IsarMathLib/UniformSpace_ZF_2.html index 2f576c7..d8562d9 100644 --- a/docs/IsarMathLib/UniformSpace_ZF_2.html +++ b/docs/IsarMathLib/UniformSpace_ZF_2.html @@ -46,8 +46,8 @@

Theory UniformSpace_ZF_2

begin text‹ The UniformSpace_ZF› theory defines uniform spaces based on entourages (also called surroundings - sometimes). In this theory we consider an alternative definition based of the - notion of uniform covers. + sometimes). In this theory we consider alternative definitions based of the + notion of uniform covers and pseudometrics. › subsection‹ Uniform covers › @@ -67,9 +67,9 @@

Theory UniformSpace_ZF_2

text‹A cover of a nonempty set must have a nonempty member.› -lemma cover_nonempty: assumes "X0" "P Covers(X)" +lemma cover_nonempty: assumes "X0" "P Covers(X)" shows "UP. U0" - using assms unfolding Covers_def by blast + using assms unfolding Covers_def by blast text‹ A "star" of $R$ with respect to $\mathcal{R}$ is the union of all $S\in \mathcal{R}$ that intersect $R$. › @@ -79,8 +79,8 @@

Theory UniformSpace_ZF_2

text‹An element of $\mathcal{R}$ is a subset of its star with respect to $\mathcal{R}$. › -lemma element_subset_star: assumes "UP" shows "U Star(U,P)" - using assms unfolding Star_def by auto +lemma element_subset_star: assumes "UP" shows "U Star(U,P)" + using assms unfolding Star_def by auto text‹An alternative formula for star of a singleton.› @@ -89,13 +89,13 @@

Theory UniformSpace_ZF_2

text‹Star of a larger set is larger.› -lemma star_mono: assumes "UV" shows "Star(U,P) Star(V,P)" - using assms unfolding Star_def by blast +lemma star_mono: assumes "UV" shows "Star(U,P) Star(V,P)" + using assms unfolding Star_def by blast text‹In particular, star of a set is larger than star of any singleton in that set.› -corollary star_single_mono: assumes "xU" shows "Star({x},P) Star(U,P)" - using assms star_mono by auto +corollary star_single_mono: assumes "xU" shows "Star({x},P) Star(U,P)" + using assms star_mono by auto text‹A cover $\mathcal{R}$ (of $X$) is said to be a "barycentric refinement" of a cover $\mathcal{C}$ iff for every $x\in X$ the star of $\{x\}$ in $\mathcal{R}$ is contained @@ -108,9 +108,9 @@

Theory UniformSpace_ZF_2

text‹A cover is a barycentric refinement of the collection of stars of the singletons $\{x \}$ as $x$ ranges over $X$.› -lemma singl_star_bary: +lemma singl_star_bary: assumes "P Covers(X)" shows "P <B {Star({x},P). xX}" - using assms unfolding Covers_def IsBarycentricRefinement_def by blast + using assms unfolding Covers_def IsBarycentricRefinement_def by blast text‹ A cover $\mathcal{R}$ is a "star refinement" of a cover $\mathcal{C}$ iff for each $R\in \mathcal{R}$ there is a $C\in \mathcal{C}$ such that the star of $R$ with @@ -122,18 +122,18 @@

Theory UniformSpace_ZF_2

text‹Every cover star-refines the trivial cover $\{ X\}$. › -lemma cover_stref_triv: assumes "P Covers(X)" shows "P <* {X}" - using assms unfolding Star_def IsStarRefinement_def Covers_def by auto +lemma cover_stref_triv: assumes "P Covers(X)" shows "P <* {X}" + using assms unfolding Star_def IsStarRefinement_def Covers_def by auto text‹Star refinement implies barycentric refinement. › -lemma star_is_bary: assumes "QCovers(X)" and "Q <* P" +lemma star_is_bary: assumes "QCovers(X)" and "Q <* P" shows "Q <B P" proof - - from assms(1) have "Q = X" unfolding Covers_def by simp + from assms(1) have "Q = X" unfolding Covers_def by simp { fix x assume "xX" with Q = X obtain R where "RQ" and "xR" by auto - with assms(2) obtain U where "UP" and "Star(R,Q) U" + with assms(2) obtain U where "UP" and "Star(R,Q) U" unfolding IsStarRefinement_def by auto from xR Star(R,Q) U have "Star({x},Q) U" using star_single_mono by blast @@ -144,27 +144,27 @@

Theory UniformSpace_ZF_2

text‹ Barycentric refinement of a barycentric refinement is a star refinement. › -lemma bary_bary_star: +lemma bary_bary_star: assumes "PCovers(X)" "QCovers(X)" "RCovers(X)" "P <B Q" "Q <B R" "X0" shows "P <* R" proof - { fix U assume "UP" { assume "U = 0" then have "Star(U,P) = 0" unfolding Star_def by simp - from assms(6,3) obtain V where "VR" using cover_nonempty by auto + from assms(6,3) obtain V where "VR" using cover_nonempty by auto with Star(U,P) = 0 have "VR. Star(U,P) V" by auto } moreover { assume "U0" then obtain x0 where "x0U" by auto - with assms(1,2,5) UP obtain V where "VR" and "Star({x0},Q) V" + with assms(1,2,5) UP obtain V where "VR" and "Star({x0},Q) V" unfolding Covers_def IsBarycentricRefinement_def by auto have "Star(U,P) V" proof - { fix W assume "WP" and "WU 0" from WU 0 obtain x where "xWU" by auto - with assms(2) UP have "xP" by auto - with assms(4) obtain C where "CQ" and "Star({x},P) C" + with assms(2) UP have "xP" by auto + with assms(4) obtain C where "CQ" and "Star({x},P) C" unfolding IsBarycentricRefinement_def by blast with UP WP xWU x0U Star({x0},Q) V have "WV" unfolding Star_def by blast @@ -199,41 +199,41 @@

Theory UniformSpace_ZF_2

text‹A family of uniform covers contain the trivial cover $\{ X\}$.› -lemma unicov_contains_triv: assumes "Θ {are uniform covers of} X" +lemma unicov_contains_triv: assumes "Θ {are uniform covers of} X" shows "{X} Θ" proof - - from assms obtain where "Θ" unfolding AreUniformCovers_def by blast - with assms show ?thesis using cover_stref_triv + from assms obtain where "Θ" unfolding AreUniformCovers_def by blast + with assms show ?thesis using cover_stref_triv unfolding AreUniformCovers_def Covers_def by auto qed text‹If $\Theta$ are uniform covers of $X$ then we can recover $X$ from $\Theta$ by taking $\bigcup\bigcup \Theta$. › -lemma space_from_unicov: assumes "Θ {are uniform covers of} X" shows "X = Θ" +lemma space_from_unicov: assumes "Θ {are uniform covers of} X" shows "X = Θ" proof - from assms show "X Θ" using unicov_contains_triv + from assms show "X Θ" using unicov_contains_triv unfolding AreUniformCovers_def by auto - from assms show "Θ X" unfolding AreUniformCovers_def Covers_def + from assms show "Θ X" unfolding AreUniformCovers_def Covers_def by auto qed text‹ Every uniform cover has a star refinement. › -lemma unicov_has_star_ref: +lemma unicov_has_star_ref: assumes "Θ {are uniform covers of} X" and "PΘ" shows "QΘ. (Q <* P)" - using assms unfolding AreUniformCovers_def by blast + using assms unfolding AreUniformCovers_def by blast text‹ In particular, every uniform cover has a barycentric refinement. › -corollary unicov_has_bar_ref: +corollary unicov_has_bar_ref: assumes "Θ {are uniform covers of} X" and "PΘ" shows "QΘ. (Q <B P)" proof - - from assms obtain Q where "QΘ" and "Q <* P" + from assms obtain Q where "QΘ" and "Q <* P" using unicov_has_star_ref by blast - with assms show ?thesis + with assms show ?thesis unfolding AreUniformCovers_def using star_is_bary by blast qed @@ -242,27 +242,27 @@

Theory UniformSpace_ZF_2

shows that in order for $Q$ to be a uniform cover it is sufficient that $P$ is a barycentric refinement of $Q$. ›
-lemma unicov_bary_cov: +lemma unicov_bary_cov: assumes "Θ {are uniform covers of} X" "PΘ" "Q Covers(X)" "P <B Q" and "X0" shows "QΘ" proof - - from assms(1,2) obtain R where "RΘ" and "R <B P" + from assms(1,2) obtain R where "RΘ" and "R <B P" using unicov_has_bar_ref by blast - from assms(1,2,3) RΘ have + from assms(1,2,3) RΘ have "P Covers(X)" "Q Covers(X)" "R Covers(X)" unfolding AreUniformCovers_def by auto - with assms(1,3,4,5) RΘ R <B P show ?thesis + with assms(1,3,4,5) RΘ R <B P show ?thesis using bary_bary_star unfolding AreUniformCovers_def by auto qed text‹ A technical lemma to simplify proof of the uniformity_from_unicov› theorem. › -lemma star_ref_mem: assumes "UP" "P<*Q" and "{W×W. WQ} A" +lemma star_ref_mem: assumes "UP" "P<*Q" and "{W×W. WQ} A" shows "U×U A" proof - - from assms(1,2) obtain W where "WQ" and "{SP. SU 0} W" + from assms(1,2) obtain W where "WQ" and "{SP. SU 0} W" unfolding IsStarRefinement_def Star_def by auto - with assms(1,3) show "U×U A" by blast + with assms(1,3) show "U×U A" by blast qed text‹An identity related to square (in the sense of composition) of a relation of the @@ -283,29 +283,29 @@

Theory UniformSpace_ZF_2

text‹A somewhat technical identity about the square of a symmetric relation: › -lemma rel_sq_image: +lemma rel_sq_image: assumes "W = converse(W)" "domain(W) X" shows "Star({x},{W``{t}. tX}) = (W O W)``{x}" proof - have I: "Star({x},{W``{t}. tX}) = {S{W``{t}. tX}. xS}" + have I: "Star({x},{W``{t}. tX}) = {S{W``{t}. tX}. xS}" unfolding Star_def by auto { fix y assume "y Star({x},{W``{t}. tX})" - with I obtain S where "yS" "xS" "S {W``{t}. tX}" by auto + with I obtain S where "yS" "xS" "S {W``{t}. tX}" by auto from S {W``{t}. tX} obtain t where "tX" and "S = W``{t}" by auto with xS yS have "t,x W" and "t,y W" by auto from t,x W have "x,t converse(W)" by auto - with assms(1) t,y W have "y (W O W)``{x}" + with assms(1) t,y W have "y (W O W)``{x}" using rel_compdef by auto } then show "Star({x},{W``{t}. tX}) (W O W)``{x}" by blast { fix y assume "y(W O W)``{x}" then obtain t where "x,t W" and "t,y W" using rel_compdef by auto - from assms(2) t,y W have "tX" by auto + from assms(2) t,y W have "tX" by auto from x,t W have "t,x converse(W)" by auto - with assms(1) I t,y W tX have "y Star({x},{W``{t}. tX})" + with assms(1) I t,y W tX have "y Star({x},{W``{t}. tX})" by auto } then show "(W O W)``{x} Star({x},{W``{t}. tX})" by blast @@ -321,15 +321,15 @@

Theory UniformSpace_ZF_2

text‹For any member $P$ of a cover $\Theta$ the set $\bigcup \{U\times U : U\in P\}$ is a member of UniformityFromUniCov(X,Θ)›. › -lemma basic_unif: assumes "Θ Covers(X)" "PΘ" +lemma basic_unif: assumes "Θ Covers(X)" "PΘ" shows "{U×U. UP} UniformityFromUniCov(X,Θ)" - using assms unfolding UniformityFromUniCov_def Supersets_def Covers_def + using assms unfolding UniformityFromUniCov_def Supersets_def Covers_def by blast text‹If $\Theta$ is a family of uniform covers of $X$ then UniformityFromUniCov(X,Θ)› is a uniformity on $X$ › -theorem uniformity_from_unicov: +theorem uniformity_from_unicov: assumes "Θ {are uniform covers of} X" "X0" shows "UniformityFromUniCov(X,Θ) {is a uniformity on} X" proof - @@ -342,13 +342,13 @@

Theory UniformSpace_ZF_2

then obtain P where "PΘ" and "0 = {U×U. UP}" unfolding UniformityFromUniCov_def Supersets_def by auto hence "P = 0" by auto - with assms PΘ have False unfolding AreUniformCovers_def Covers_def + with assms PΘ have False unfolding AreUniformCovers_def Covers_def by auto } thus ?thesis by auto qed moreover have "X×X " proof - - from assms have "X×X {{U×U. UP}. PΘ}" + from assms have "X×X {{U×U. UP}. PΘ}" using unicov_contains_triv unfolding AreUniformCovers_def by auto then show ?thesis unfolding Supersets_def UniformityFromUniCov_def @@ -362,15 +362,15 @@

Theory UniformSpace_ZF_2

then have "AB X×X" unfolding UniformityFromUniCov_def Supersets_def by auto from A B obtain PA PB where - "PAΘ" "PBΘ" and I:"{U×U. UPA} A" "{U×U. UPB} B" + "PAΘ" "PBΘ" and I:"{U×U. UPA} A" "{U×U. UPB} B" unfolding UniformityFromUniCov_def Supersets_def by auto - from assms(1) PAΘ PBΘ obtain P + from assms(1) PAΘ PBΘ obtain P where "PΘ" and "P<*PA" and "P<*PB" unfolding AreUniformCovers_def by blast have "{U×U. UP} AB" proof - { fix U assume "UP" - with P<*PA P<*PB I have "U×U A" and "U×U B" + with P<*PA P<*PB I have "U×U A" and "U×U B" using star_ref_mem by auto } thus ?thesis by blast qed @@ -397,24 +397,24 @@

Theory UniformSpace_ZF_2

unfolding UniformityFromUniCov_def Supersets_def by auto have "id(X)A" proof - - from assms(1) PΘ have "P = X" unfolding AreUniformCovers_def Covers_def + from assms(1) PΘ have "P = X" unfolding AreUniformCovers_def Covers_def by auto with {U×U. UP} A show ?thesis by auto qed moreover have "B. B O B A" proof - - from assms(1) PΘ have "{U×U. UP} " + from assms(1) PΘ have "{U×U. UP} " unfolding AreUniformCovers_def Covers_def UniformityFromUniCov_def Supersets_def by auto - from assms(1) PΘ obtain Q where "QΘ" and "Q <* P" using unicov_has_star_ref + from assms(1) PΘ obtain Q where "QΘ" and "Q <* P" using unicov_has_star_ref by blast let ?B = "{U×U. UQ}" - from assms(1) QΘ have "?B " + from assms(1) QΘ have "?B " unfolding AreUniformCovers_def Covers_def UniformityFromUniCov_def Supersets_def by auto moreover have "?B O ?B A" proof - - have II: "?B O ?B = {U×Star(U,Q). UQ}" using rel_square_starr + have II: "?B O ?B = {U×Star(U,Q). UQ}" using rel_square_starr by simp have "UQ. VP. U×Star(U,Q) V×V" proof @@ -427,7 +427,7 @@

Theory UniformSpace_ZF_2

qed hence "{U×Star(U,Q). UQ} {V×V. VP}" by blast with {V×V. VP} A have "{U×Star(U,Q). UQ} A" by blast - with II show ?thesis by simp + with II show ?thesis by simp qed ultimately show ?thesis by auto qed @@ -453,7 +453,7 @@

Theory UniformSpace_ZF_2

of
UniCovFromUniformity› we get an alternative definition of the operation that creates a family of uniform covers from a uniformity. Just a curiosity, not used anywhere.›
-lemma UniCovFromUniformityDef: assumes "X0" +lemma UniCovFromUniformityDef: assumes "X0" shows "UniCovFromUniformity(X,Φ) = (UΦ.xX. {PCovers(X). AP. U``({x}) A})" proof - have "{PCovers(X). UΦ.xX.AP. U``({x}) A} = @@ -462,7 +462,7 @@

Theory UniformSpace_ZF_2

{ fix P assume "P{PCovers(X). UΦ.xX.AP. U``({x}) A}" then have "PCovers(X)" and "UΦ.xX.AP. U``({x}) A" by auto then obtain U where "UΦ" and "xX.AP. U``({x}) A" by auto - with assms PCovers(X) have "P (xX. {PCovers(X). AP. U``({x}) A})" + with assms PCovers(X) have "P (xX. {PCovers(X). AP. U``({x}) A})" by auto with UΦ have "P(UΦ.xX. {PCovers(X). AP. U``({x}) A})" by blast @@ -473,7 +473,7 @@

Theory UniformSpace_ZF_2

{ fix P assume "P(UΦ.xX. {PCovers(X). AP. U``({x}) A})" then obtain U where "UΦ" "P (xX. {PCovers(X). AP. U``({x}) A})" by auto - with assms have "PCovers(X)" and "xX.AP. U``({x}) A" by auto + with assms have "PCovers(X)" and "xX.AP. U``({x}) A" by auto with UΦ have "P{PCovers(X). UΦ.xX.AP. U``({x}) A}" by auto } then show "(UΦ.xX. {PCovers(X). AP. U``({x}) A}) @@ -485,23 +485,23 @@

Theory UniformSpace_ZF_2

text‹If $\Phi$ is a (diagonal) uniformity on $X$, then covers of the form $\{ W\{ x\} : x\in X\}$ are members of UniCovFromUniformity(X,Φ)›. › -lemma cover_image: +lemma cover_image: assumes "Φ {is a uniformity on} X" "WΦ" shows "{W``{x}. xX} UniCovFromUniformity(X,Φ)" proof - let ?P = "{W``{x}. xX}" have "?P Covers(X)" proof - - from assms have "W X×X" and "?P Pow(Pow(X))" + from assms have "W X×X" and "?P Pow(Pow(X))" using entourage_props(1) by auto moreover have "?P = X" proof from W X×X show "?P X" by auto - from assms show "X ?P" using neigh_not_empty(2) by auto + from assms show "X ?P" using neigh_not_empty(2) by auto qed ultimately show ?thesis unfolding Covers_def by simp qed - moreover from assms(2) have "WΦ. xX. A?P. W``{x} A" + moreover from assms(2) have "WΦ. xX. A?P. W``{x} A" by auto ultimately show ?thesis unfolding UniCovFromUniformity_def by simp @@ -510,39 +510,39 @@

Theory UniformSpace_ZF_2

text‹If $\Phi$ is a (diagonal) uniformity on $X$, then every two elements of UniCovFromUniformity(X,Φ)› have a common barycentric refinement.› -lemma common_bar_refinemnt: +lemma common_bar_refinemnt: assumes "Φ {is a uniformity on} X" "Θ = UniCovFromUniformity(X,Φ)" "𝒞Θ" "𝒟Θ" shows "Θ.( <B 𝒞) ( <B 𝒟)" proof - - from assms(2,3) obtain U where "UΦ" and I: "xX.C𝒞. U``{x} C" + from assms(2,3) obtain U where "UΦ" and I: "xX.C𝒞. U``{x} C" unfolding UniCovFromUniformity_def by auto - from assms(2,4) obtain V where "VΦ" and II: "xX.D𝒟. V``{x} D" + from assms(2,4) obtain V where "VΦ" and II: "xX.D𝒟. V``{x} D" unfolding UniCovFromUniformity_def by auto - from assms(1) UΦ VΦ have "UV Φ" + from assms(1) UΦ VΦ have "UV Φ" unfolding IsUniformity_def IsFilter_def by auto - with assms(1) obtain W where "WΦ" and "W O W UV" and "W=converse(W)" + with assms(1) obtain W where "WΦ" and "W O W UV" and "W=converse(W)" using half_size_symm by blast - from assms(1) WΦ have "domain(W) X" + from assms(1) WΦ have "domain(W) X" unfolding IsUniformity_def IsFilter_def by auto let ?P = "{W``{t}. tX}" have "?PΘ" "?P <B 𝒞" "?P <B 𝒟" proof - - from assms(1,2) WΦ show "?PΘ" using cover_image by simp - with assms(2) have "?P = X" unfolding UniCovFromUniformity_def Covers_def + from assms(1,2) WΦ show "?PΘ" using cover_image by simp + with assms(2) have "?P = X" unfolding UniCovFromUniformity_def Covers_def by simp { fix x assume "xX" from W=converse(W) domain(W) X W O W UV have "Star({x},?P) U``{x}" and "Star({x},?P) V``{x}" using rel_sq_image by auto - from xX I obtain C where "C𝒞" and "U``{x} C" + from xX I obtain C where "C𝒞" and "U``{x} C" by auto with Star({x},?P) U``{x} C𝒞 have "C𝒞. Star({x},?P) C" by auto moreover - from xX II obtain D where "D𝒟" and "V``{x} D" + from xX II obtain D where "D𝒟" and "V``{x} D" by auto with Star({x},?P) V``{x} D𝒟 have "D𝒟. Star({x},?P) D" by auto @@ -559,23 +559,23 @@

Theory UniformSpace_ZF_2

text‹If $\Phi$ is a (diagonal) uniformity on $X$, then every element of UniCovFromUniformity(X,Φ)› has a barycentric refinement there.› -corollary bar_refinement_ex: +corollary bar_refinement_ex: assumes "Φ {is a uniformity on} X" "Θ = UniCovFromUniformity(X,Φ)" "𝒞 Θ" shows "Θ. ( <B 𝒞)" - using assms common_bar_refinemnt by blast + using assms common_bar_refinemnt by blast text‹ If $\Phi$ is a (diagonal) uniformity on $X$, then UniCovFromUniformity(X,Φ)› is a family of uniform covers.› -theorem unicov_from_uniformity: assumes "Φ {is a uniformity on} X" and "X0" +theorem unicov_from_uniformity: assumes "Φ {is a uniformity on} X" and "X0" shows "UniCovFromUniformity(X,Φ) {are uniform covers of} X" proof - let = "UniCovFromUniformity(X,Φ)" - from assms(1) have " Covers(X)" unfolding UniCovFromUniformity_def + from assms(1) have " Covers(X)" unfolding UniCovFromUniformity_def by auto moreover - from assms(1) have "{X} " + from assms(1) have "{X} " unfolding Covers_def IsUniformity_def IsFilter_def UniCovFromUniformity_def by auto hence " 0" by auto @@ -584,10 +584,10 @@

Theory UniformSpace_ZF_2

{ fix 𝒞 assume "" "𝒞Covers(X)" " <* 𝒞" have "𝒞" proof - - from obtain U where "UΦ" and I: "xX.R. U``({x}) R" + from obtain U where "UΦ" and I: "xX.R. U``({x}) R" unfolding UniCovFromUniformity_def by auto { fix x assume "xX" - with I obtain R where "R" and "U``({x}) R" by auto + with I obtain R where "R" and "U``({x}) R" by auto from R <* 𝒞 obtain C where "C𝒞" and "Star(R,) C" unfolding IsStarRefinement_def by auto with U``({x}) R R have "U``({x}) C" @@ -602,14 +602,14 @@

Theory UniformSpace_ZF_2

moreover have "𝒞.𝒟..( <* 𝒞) ( <* 𝒟)" proof - { fix 𝒞 𝒟 assume "𝒞" "𝒟" - with assms(1) obtain P where "P" and "P <B 𝒞" "P <B 𝒟" + with assms(1) obtain P where "P" and "P <B 𝒞" "P <B 𝒟" using common_bar_refinemnt by blast - from assms(1) P obtain where "" and " <B P" + from assms(1) P obtain where "" and " <B P" using bar_refinement_ex by blast from P 𝒞 𝒟 have "P Covers(X)" " Covers(X)" "𝒞 Covers(X)" "𝒟 Covers(X)" unfolding UniCovFromUniformity_def by auto - with assms(2) <B P P <B 𝒞 P <B 𝒟 have " <* 𝒞" and " <* 𝒟" + with assms(2) <B P P <B 𝒞 P <B 𝒟 have " <* 𝒞" and " <* 𝒟" using bary_bary_star by auto with have ".( <* 𝒞) ( <* 𝒟)" by auto } thus ?thesis by simp @@ -619,19 +619,19 @@

Theory UniformSpace_ZF_2

text‹ The UniCovFromUniformity› operation is the inverse of UniformityFromUniCov›. › -theorem unicov_from_unif_inv: assumes "Θ {are uniform covers of} X" "X0" +theorem unicov_from_unif_inv: assumes "Θ {are uniform covers of} X" "X0" shows "UniCovFromUniformity(X,UniformityFromUniCov(X,Θ)) = Θ" proof let = "UniformityFromUniCov(X,Θ)" let ?L = "UniCovFromUniformity(X,)" - from assms have I: " {is a uniformity on} X" + from assms have I: " {is a uniformity on} X" using uniformity_from_unicov by simp - with assms(2) have II: "?L {are uniform covers of} X" + with assms(2) have II: "?L {are uniform covers of} X" using unicov_from_uniformity by simp { fix P assume "P?L" - with I obtain Q where "Q?L" and "Q <B P" + with I obtain Q where "Q?L" and "Q <B P" using bar_refinement_ex by blast - from Q?L obtain U where "U" and III:"xX.AQ. U``{x} A" + from Q?L obtain U where "U" and III:"xX.AQ. U``{x} A" unfolding UniCovFromUniformity_def by auto from U have "U Supersets(X×X,{{U×U. UP}. PΘ})" unfolding UniformityFromUniCov_def by simp @@ -640,13 +640,13 @@

Theory UniformSpace_ZF_2

then obtain C where "C {{U×U. UP}. PΘ}" and "CB" by auto then obtain R where "RΘ" and "C = {V×V. VR}" by auto with CB BU have "{V×V. VR} U" by auto - from assms(1) II P?L Q?L RΘ have - IV: "PCovers(X)" "QCovers(X)" "RCovers(X)" + from assms(1) II P?L Q?L RΘ have + IV: "PCovers(X)" "QCovers(X)" "RCovers(X)" unfolding AreUniformCovers_def by auto have "R <B Q" proof - { fix x assume "xX" - with III obtain A where "AQ" and "U``{x} A" by auto + with III obtain A where "AQ" and "U``{x} A" by auto with {V×V. VR} U have "({V×V. VR})``{x} A" by auto with AQ have "AQ. Star({x},R) A" using star_singleton by auto @@ -656,38 +656,38 @@

Theory UniformSpace_ZF_2

ultimately show ?thesis unfolding IsBarycentricRefinement_def by simp qed - with assms(2) Q <B P IV have "R <* P" using bary_bary_star by simp - with assms(1) RΘ PCovers(X) have "PΘ" + with assms(2) Q <B P IV have "R <* P" using bary_bary_star by simp + with assms(1) RΘ PCovers(X) have "PΘ" unfolding AreUniformCovers_def by simp } thus "?LΘ" by auto { fix P assume "PΘ" - with assms(1) have "P Covers(X)" + with assms(1) have "P Covers(X)" unfolding AreUniformCovers_def by auto - from assms(1) PΘ obtain Q where "Q Θ" and "Q <B P" + from assms(1) PΘ obtain Q where "Q Θ" and "Q <B P" using unicov_has_bar_ref by blast let ?A = "{V×V. VQ}" have "?A " proof - - from assms(1) QΘ have "?A X×X" and "?A {{V×V. VQ}. QΘ}" + from assms(1) QΘ have "?A X×X" and "?A {{V×V. VQ}. QΘ}" unfolding AreUniformCovers_def Covers_def by auto then show ?thesis using superset_gen unfolding UniformityFromUniCov_def by auto qed - with I obtain B where "B" "B O B ?A" and "B=converse(B)" + with I obtain B where "B" "B O B ?A" and "B=converse(B)" using half_size_symm by blast let ?R = "{B``{x}. xX}" - from I II B have "?R?L" and "?R =X" + from I II B have "?R?L" and "?R =X" using cover_image unfolding UniCovFromUniformity_def Covers_def by auto have "?R <B P" proof - { fix x assume "xX" - from assms(1) Q Θ have "Q = X" + from assms(1) Q Θ have "Q = X" unfolding AreUniformCovers_def Covers_def by auto with Q <B P xX obtain C where "CP" and "Star({x},Q) C" unfolding IsBarycentricRefinement_def by auto - from B=converse(B) I B have "Star({x},?R) = (B O B)``{x}" + from B=converse(B) I B have "Star({x},?R) = (B O B)``{x}" using uni_domain rel_sq_image by auto moreover from (B O B) ?A have "(B O B)``{x} ?A``{x}" by blast moreover have "?A``{x} = Star({x},Q)" using star_singleton by simp @@ -697,59 +697,59 @@

Theory UniformSpace_ZF_2

} with ?R = X show ?thesis unfolding IsBarycentricRefinement_def by auto qed - with assms(2) II P Covers(X) ?R?L ?R <B P have "P?L" + with assms(2) II P Covers(X) ?R?L ?R <B P have "P?L" using unicov_bary_cov by simp } thus "Θ?L" by auto qed text‹The UniformityFromUniCov› operation is the inverse of UniCovFromUniformity›. › -theorem unif_from_unicov_inv: assumes "Φ {is a uniformity on} X" "X0" +theorem unif_from_unicov_inv: assumes "Φ {is a uniformity on} X" "X0" shows "UniformityFromUniCov(X,UniCovFromUniformity(X,Φ)) = Φ" proof let = "UniCovFromUniformity(X,Φ)" let ?L = "UniformityFromUniCov(X,)" - from assms have I: " {are uniform covers of} X" + from assms have I: " {are uniform covers of} X" using unicov_from_uniformity by simp - with assms have II: "?L {is a uniformity on} X" + with assms have II: "?L {is a uniformity on} X" using uniformity_from_unicov by simp { fix A assume "AΦ" - with assms(1) obtain B where "BΦ" "B O B A" and "B = converse(B)" + with assms(1) obtain B where "BΦ" "B O B A" and "B = converse(B)" using half_size_symm by blast - from assms(1) AΦ have "A X×X" using uni_domain(1) + from assms(1) AΦ have "A X×X" using uni_domain(1) by simp let ?P = "{B``{x}. xX}" - from assms(1) BΦ have "?P" using cover_image + from assms(1) BΦ have "?P" using cover_image by simp let ?C = "{U×U. U?P}" - from I ?P have "?C?L" + from I ?P have "?C?L" unfolding AreUniformCovers_def using basic_unif by blast - from assms(1) BΦ B = converse(B) B O B A have "?C A" + from assms(1) BΦ B = converse(B) B O B A have "?C A" using uni_domain(2) symm_sq_prod_image by simp - with II A X×X ?C?L have "A?L" + with II A X×X ?C?L have "A?L" unfolding IsUniformity_def IsFilter_def by simp } thus "Φ?L" by auto { fix A assume "A?L" - with II have "A X×X" using entourage_props(1) by simp + with II have "A X×X" using entourage_props(1) by simp from A?L obtain P where "P" and "{U×U. UP} A" unfolding UniformityFromUniCov_def Supersets_def by blast - from P obtain B where "BΦ" and III: "xX. VP. B``{x} V" + from P obtain B where "BΦ" and III: "xX. VP. B``{x} V" unfolding UniCovFromUniformity_def by auto have "BA" proof - - from assms(1) BΦ have "B {B``{x}×B``{x}. xX}" + from assms(1) BΦ have "B {B``{x}×B``{x}. xX}" using entourage_props(1,2) refl_union_singl_image by simp moreover have "{B``{x}×B``{x}. xX} A" proof - { fix x assume "xX" - with III obtain V where "VP" and "B``{x} V" by auto + with III obtain V where "VP" and "B``{x} V" by auto hence "B``{x}×B``{x} {U×U. UP}" by auto } hence "{B``{x}×B``{x}. xX} {U×U. UP}" by blast with {U×U. UP} A show ?thesis by blast qed ultimately show ?thesis by auto qed - with assms(1) BΦ A X×X have "AΦ" + with assms(1) BΦ A X×X have "AΦ" unfolding IsUniformity_def IsFilter_def by simp } thus "?LΦ" by auto qed diff --git a/docs/IsarMathLib/ZF1.html b/docs/IsarMathLib/ZF1.html index a7d7c7d..7812f55 100644 --- a/docs/IsarMathLib/ZF1.html +++ b/docs/IsarMathLib/ZF1.html @@ -69,42 +69,48 @@

Theory ZF1

with assms show "x B" by auto qed +text‹In ZF set theory the zero of natural numbers is the same as the empty set. + In the next abbreviation we declare that we want $0$ and $\emptyset$ to be synonyms + so that we can use $\emptyset$ instead of $0$ when appropriate. › + +abbreviation empty_set ("") where " 0" + text‹If all sets of a nonempty collection are the same, then its union is the same.› -lemma ZF1_1_L1: assumes "C0" and "yC. b(y) = A" - shows "(yC. b(y)) = A" using assms by blast +lemma ZF1_1_L1: assumes "C" and "yC. b(y) = A" + shows "(yC. b(y)) = A" using assms by blast text‹The union af all values of a constant meta-function belongs to the same set as the constant.› -lemma ZF1_1_L2: assumes A1:"C0" and A2: "xC. b(x) A" - and A3: "x y. xC yC b(x) = b(y)" +lemma ZF1_1_L2: assumes A1:"C" and A2: "xC. b(x) A" + and A3: "x y. xC yC b(x) = b(y)" shows "(xC. b(x))A" proof - - from A1 obtain x where D1: "xC" by auto - with A3 have "yC. b(y) = b(x)" by blast - with A1 have "(yC. b(y)) = b(x)" + from A1 obtain x where D1: "xC" by auto + with A3 have "yC. b(y) = b(x)" by blast + with A1 have "(yC. b(y)) = b(x)" using ZF1_1_L1 by simp - with D1 A2 show ?thesis by simp + with D1 A2 show ?thesis by simp qed text‹If two meta-functions are the same on a cartesian product, then the subsets defined by them are the same. I am surprised Isabelle can not handle this automatically.› -lemma ZF1_1_L4: assumes A1: "xX.yY. a(x,y) = b(x,y)" +lemma ZF1_1_L4: assumes A1: "xX.yY. a(x,y) = b(x,y)" shows "{a(x,y). x,y X×Y} = {b(x,y). x,y X×Y}" proof show "{a(x, y). x,y X × Y} {b(x, y). x,y X × Y}" proof fix z assume "z {a(x, y) . x,y X × Y}" - with A1 show "z {b(x,y).x,y X×Y}" by auto + with A1 show "z {b(x,y).x,y X×Y}" by auto qed show "{b(x, y). x,y X × Y} {a(x, y). x,y X × Y}" proof fix z assume "z {b(x, y). x,y X × Y}" - with A1 show "z {a(x,y).x,y X×Y}" by auto + with A1 show "z {a(x,y).x,y X×Y}" by auto qed qed @@ -114,19 +120,19 @@

Theory ZF1

the set definition varies over
p∈X×Y› rather than ⟨ x,y⟩∈X×Y›.›
-lemma ZF1_1_L4A: assumes A1: "xX.yY. a( x,y) = b(x,y)" +lemma ZF1_1_L4A: assumes A1: "xX.yY. a( x,y) = b(x,y)" shows "{a(p). p X×Y} = {b(x,y). x,y X×Y}" proof { fix z assume "z {a(p). pX×Y}" - then obtain p where D1: "z=a(p)" "pX×Y" by auto + then obtain p where D1: "z=a(p)" "pX×Y" by auto let ?x = "fst(p)" let ?y = "snd(p)" - from A1 D1 have "z {b(x,y). x,y X×Y}" by auto + from A1 D1 have "z {b(x,y). x,y X×Y}" by auto } then show "{a(p). p X×Y} {b(x,y). x,y X×Y}" by blast next { fix z assume "z {b(x,y). x,y X×Y}" - then obtain x y where D1: "x,y X×Y" "z=b(x,y)" by auto + then obtain x y where D1: "x,y X×Y" "z=b(x,y)" by auto let ?p = " x,y" - from A1 D1 have "?pX×Y" "z = a(?p)" by auto + from A1 D1 have "?pX×Y" "z = a(?p)" by auto then have "z {a(p). p X×Y}" by auto } then show "{b(x,y). x,y X×Y} {a(p). p X×Y}" by blast qed @@ -134,43 +140,50 @@

Theory ZF1

text‹A lemma about inclusion in cartesian products. Included here to remember that we need the $U\times V \neq \emptyset$ assumption.› -lemma prod_subset: assumes "U×V0" "U×V X×Y" shows "UX" and "VY" - using assms by auto +lemma prod_subset: assumes "U×V" "U×V X×Y" shows "UX" and "VY" + using assms by auto text‹A technical lemma about sections in cartesian products.› -lemma section_proj: assumes "A X×Y" and "U×V A" and "x U" "y V" +lemma section_proj: assumes "A X×Y" and "U×V A" and "x U" "y V" shows "U {tX. t,y A}" and "V {tY. x,t A}" - using assms by auto + using assms by auto text‹If two meta-functions are the same on a set, then they define the same set by separation.› -lemma ZF1_1_L4B: assumes "xX. a(x) = b(x)" +lemma ZF1_1_L4B: assumes "xX. a(x) = b(x)" shows "{a(x). xX} = {b(x). xX}" - using assms by simp + using assms by simp text‹A set defined by a constant meta-function is a singleton.› -lemma ZF1_1_L5: assumes "X0" and "xX. b(x) = c" - shows "{b(x). xX} = {c}" using assms by blast +lemma ZF1_1_L5: assumes "X" and "xX. b(x) = c" + shows "{b(x). xX} = {c}" using assms by blast text‹Most of the time, auto› does this job, but there are strange cases when the next lemma is needed.› -lemma subset_with_property: assumes "Y = {xX. b(x)}" +lemma subset_with_property: assumes "Y = {xX. b(x)}" shows "Y X" - using assms by auto + using assms by auto + +text‹If set $A$ is contained in set $B$ and exist elements $x,y$ of the set $A$ + that satisfy a predicate then exist elements of the set $B$ that satisfy the predicate. › + +lemma exist2_subset: assumes "AB" and "xA. yA. φ(x,y)" + shows "xB. yB. φ(x,y)" + using assms by blast text‹We can choose an element from a nonempty set.› -lemma nonempty_has_element: assumes "X0" shows "x. xX" - using assms by auto +lemma nonempty_has_element: assumes "X" shows "x. xX" + using assms by auto (*text{*If after removing an element from a set we get an empty set, then this set must be a singleton.*} -lemma rem_point_empty: assumes "a∈A" and "A-{a} = 0" +lemma rem_point_empty: assumes "a∈A" and "A-{a} = ∅" shows "A = {a}" using assms by auto; *) text‹In Isabelle/ZF the intersection of an empty family is @@ -179,14 +192,14 @@

Theory ZF1

difficult to find. This is one reason we need comments before every theorem: so that we can search for keywords.›
-lemma inter_empty_empty: shows "0 = 0" by (rule Inter_0) +lemma inter_empty_empty: shows " = " by (rule Inter_0) text‹If an intersection of a collection is not empty, then the collection is not empty. We are (ab)using the fact the the intersection of empty collection is defined to be empty.› -lemma inter_nempty_nempty: assumes "A 0" shows "A0" - using assms by auto +lemma inter_nempty_nempty: assumes "A " shows "A" + using assms by auto text‹For two collections $S,T$ of sets we define the product collection as the collections of cartesian products $A\times B$, where $A\in S, B\in T$.› @@ -202,11 +215,11 @@

Theory ZF1

text‹An intersection of subsets is a subset.› -lemma ZF1_1_L7: assumes A1: "I0" and A2: "iI. P(i) X" +lemma ZF1_1_L7: assumes A1: "I" and A2: "iI. P(i) X" shows "( iI. P(i) ) X" proof - - from A1 obtain i0 where "i0 I" by auto - with A2 have "( iI. P(i) ) P(i0)" and "P(i0) X" + from A1 obtain i0 where "i0 I" by auto + with A2 have "( iI. P(i) ) P(i0)" and "P(i0) X" by auto thus "( iI. P(i) ) X" by auto qed @@ -219,17 +232,17 @@

Theory ZF1

text‹Some properties of singletons.› -lemma ZF1_1_L9: assumes A1: "∃! x. xA φ(x)" +lemma ZF1_1_L9: assumes A1: "∃! x. xA φ(x)" shows "a. {xA. φ(x)} = {a}" " {xA. φ(x)} A" "φ( {xA. φ(x)})" proof - - from A1 show "a. {xA. φ(x)} = {a}" by auto - then obtain a where I: "{xA. φ(x)} = {a}" by auto + from A1 show "a. {xA. φ(x)} = {a}" by auto + then obtain a where I: "{xA. φ(x)} = {a}" by auto then have " {xA. φ(x)} = a" by auto moreover - from I have "a {xA. φ(x)}" by simp + from I have "a {xA. φ(x)}" by simp hence "aA" and "φ(a)" by auto ultimately show " {xA. φ(x)} A" and "φ( {xA. φ(x)})" by auto @@ -237,10 +250,10 @@

Theory ZF1

text‹A simple version of ZF1_1_L9›.› -corollary singleton_extract: assumes "∃! x. xA" +corollary singleton_extract: assumes "∃! x. xA" shows "( A) A" proof - - from assms have "∃! x. xA True" by simp + from assms have "∃! x. xA True" by simp then have " {xA. True} A" by (rule ZF1_1_L9) thus "( A) A" by simp qed @@ -248,31 +261,31 @@

Theory ZF1

text‹A criterion for when a set defined by comprehension is a singleton.› lemma singleton_comprehension: - assumes A1: "yX" and A2: "xX. yX. P(x) = P(y)" + assumes A1: "yX" and A2: "xX. yX. P(x) = P(y)" shows "({P(x). xX}) = P(y)" proof - let ?A = "{P(x). xX}" have "∃! c. c ?A" proof - from A1 show "c. c ?A" by auto + from A1 show "c. c ?A" by auto next fix a b assume "a ?A" and "b ?A" then obtain x t where "x X" "a = P(x)" and "t X" "b = P(t)" by auto - with A2 show "a=b" by blast + with A2 show "a=b" by blast qed then have "(?A) ?A" by (rule singleton_extract) then obtain x where "x X" and "(?A) = P(x)" by auto - from A1 A2 x X have "P(x) = P(y)" + from A1 A2 x X have "P(x) = P(y)" by blast with (?A) = P(x) show "(?A) = P(y)" by simp qed text‹Adding an element of a set to that set does not change the set.› -lemma set_elem_add: assumes "xX" shows "X {x} = X" using assms +lemma set_elem_add: assumes "xX" shows "X {x} = X" using assms by auto text‹Here we define a restriction of a collection of sets to a given set. @@ -294,7 +307,7 @@

Theory ZF1

text‹Next we show a technical identity that is used to prove sufficiency of some condition for a collection of sets to be a base for a topology.› -lemma ZF1_1_L10: assumes A1: "UC. AB. U = A" +lemma ZF1_1_L10: assumes A1: "UC. AB. U = A" shows " {{AB. U = A}. UC} = C" proof show "(UC. {A B . U = A}) C" by blast @@ -304,7 +317,7 @@

Theory ZF1

show "x (UC. {A B . U = A})" proof - from x C obtain U where "UC xU" by auto - with A1 obtain A where "AB U = A" by auto + with A1 obtain A where "AB U = A" by auto from UC xU AB U = A show "x (UC. {A B . U = A})" by auto qed @@ -320,54 +333,54 @@

Theory ZF1

text‹If a difference between a set and a singleton is empty, then the set is empty or it is equal to the singleton.› -lemma singl_diff_empty: assumes "A - {x} = 0" - shows "A = 0 A = {x}" - using assms by auto +lemma singl_diff_empty: assumes "A - {x} = " + shows "A = A = {x}" + using assms by auto text‹If a difference between a set and a singleton is the set, then the only element of the singleton is not in the set.› -lemma singl_diff_eq: assumes A1: "A - {x} = A" +lemma singl_diff_eq: assumes A1: "A - {x} = A" shows "x A" proof - have "x A - {x}" by auto - with A1 show "x A" by simp + with A1 show "x A" by simp qed text‹Simple substitution in membership, has to be used by rule in very rare cases.› -lemma eq_mem: assumes "xA" and "y=x" shows "yA" - using assms by simp +lemma eq_mem: assumes "xA" and "y=x" shows "yA" + using assms by simp text‹A basic property of sets defined by comprehension.› -lemma comprehension: assumes "a {xX. p(x)}" - shows "aX" and "p(a)" using assms by auto +lemma comprehension: assumes "a {xX. p(x)}" + shows "aX" and "p(a)" using assms by auto text‹A basic property of a set defined by another type of comprehension.› -lemma comprehension_repl: assumes "y {p(x). xX}" - shows "xX. y = p(x)" using assms by auto +lemma comprehension_repl: assumes "y {p(x). xX}" + shows "xX. y = p(x)" using assms by auto text‹The inverse of the comprehension› lemma.› -lemma mem_cond_in_set: assumes "φ(c)" and "cX" - shows "c {xX. φ(x)}" using assms by blast +lemma mem_cond_in_set: assumes "φ(c)" and "cX" + shows "c {xX. φ(x)}" using assms by blast text‹The image of a set by a greater relation is greater. › -lemma image_rel_mono: assumes "rs" shows "r``(A) s``(A)" - using assms by auto +lemma image_rel_mono: assumes "rs" shows "r``(A) s``(A)" + using assms by auto text‹ A technical lemma about relations: if $x$ is in its image by a relation $U$ and that image is contained in some set $C$, then the image of the singleton $\{ x\}$ by the relation $U \cup C\times C$ equals $C$. › -lemma image_greater_rel: +lemma image_greater_rel: assumes "x U``{x}" and "U``{x} C" shows "(U C×C)``{x} = C" - using assms image_Un_left by blast + using assms image_Un_left by blast text‹Reformulation of the definition of composition of two relations: › @@ -383,7 +396,7 @@

Theory ZF1

text‹An identity for the square (in the sense of composition) of a symmetric relation.› -lemma symm_sq_prod_image: assumes "converse(r) = r" +lemma symm_sq_prod_image: assumes "converse(r) = r" shows "r O r = {(r``{x})×(r``{x}). x domain(r)}" proof { fix p assume "p r O r" @@ -391,7 +404,7 @@

Theory ZF1

with p r O r obtain x where "y,x r" and "x,z r" using rel_compdef by auto from y,x r have "x,y converse(r)" by simp - with assms x,z r y,z = p have "xdomain(r). p (r``{x})×(r``{x})" + with assms x,z r y,z = p have "xdomain(r). p (r``{x})×(r``{x})" by auto } thus "r O r ({(r``{x})×(r``{x}). x domain(r)})" by blast @@ -403,21 +416,28 @@

Theory ZF1

by auto from y r``{x} have "x,y r" by auto then have "y,x converse(r)" by simp - with assms z r``{x} y,z = p have "p r O r" by auto + with assms z r``{x} y,z = p have "p r O r" by auto } thus ?thesis by auto qed } thus "({(r``{x})×(r``{x}). x domain(r)}) r O r" by blast qed +text‹Square of a reflexive relation contains the relation. + Recall that in ZF the identity function on $X$ is the same as the diagonal + of $X\times X$, i.e. $id(X) = \{\langle x,x\rangle : x\in X\}$. › + +lemma refl_square_greater: assumes "r X×X" "id(X) r" + shows "r r O r" using assms by auto + text‹A reflexive relation is contained in the union of products of its singleton images. › -lemma refl_union_singl_image: +lemma refl_union_singl_image: assumes "A X×X" and "id(X)A" shows "A {A``{x}×A``{x}. x X}" proof - { fix p assume "pA" - with assms(1) obtain x y where "xX" "yX" and "p=x,y" by auto - with assms(2) pA have "xX. p A``{x}×A``{x}" by auto + with assms(1) obtain x y where "xX" "yX" and "p=x,y" by auto + with assms(2) pA have "xX. p A``{x}×A``{x}" by auto } thus ?thesis by auto qed @@ -425,21 +445,21 @@

Theory ZF1

symmetric relation $W$ has a nonempty intersection with $R$ then $x$ is in relation $W\circ (R\circ W)$ with $y$. ›
-lemma sym_rel_comp: - assumes "W=converse(W)" and "(W``{x})×(W``{y}) R 0" +lemma sym_rel_comp: + assumes "W=converse(W)" and "(W``{x})×(W``{y}) R " shows "x,y (W O (R O W))" proof - - from assms(2) obtain s t where "sW``{x}" "tW``{y}" and "s,tR" + from assms(2) obtain s t where "sW``{x}" "tW``{y}" and "s,tR" by blast then have "x,s W" and "y,t W" by auto from x,s W s,t R have "x,t R O W" by auto from y,t W have "t,y converse(W)" by blast - with assms(1) x,t R O W show ?thesis by auto + with assms(1) x,t R O W show ?thesis by auto qed text‹ It's hard to believe but there are cases where we have to reference this rule. › -lemma set_mem_eq: assumes "xA" "A=B" shows "xB" using assms by simp +lemma set_mem_eq: assumes "xA" "A=B" shows "xB" using assms by simp text‹Given some family $\mathcal{A}$ of subsets of $X$ we can define the family of supersets of $\mathcal{A}$. › @@ -449,50 +469,71 @@

Theory ZF1

text‹The family itself is in its supersets. › -lemma superset_gen: assumes "AX" "A𝒜" shows "A Supersets(X,𝒜)" - using assms unfolding Supersets_def by auto +lemma superset_gen: assumes "AX" "A𝒜" shows "A Supersets(X,𝒜)" + using assms unfolding Supersets_def by auto + +text‹The whole space is a superset of any nonempty collection of its subsets. › + +lemma space_superset: assumes "𝒜" "𝒜Pow(X)" shows "X Supersets(X,𝒜)" +proof - + from assms(1) obtain A where "A𝒜" by auto + with assms(2) show ?thesis unfolding Supersets_def by auto +qed + +text‹The collection of supersets of an empty set is empty. In particular + the whole space $X$ is not a superset of an empty set. › + +lemma supersets_of_empty: shows "Supersets(X,) = " + unfolding Supersets_def by auto + +text‹However, when the space is empty the collection of supersets does not have + to be empty - the collection of supersets of the singleton collection containing + only the empty set is this collection. › + +lemma supersets_in_empty: shows "Supersets(,{}) = {}" + unfolding Supersets_def by auto text‹This can be done by the auto method, but sometimes takes a long time. › -lemma witness_exists: assumes "xX" and "φ(x)" shows "xX. φ(x)" - using assms by auto +lemma witness_exists: assumes "xX" and "φ(x)" shows "xX. φ(x)" + using assms by auto text‹Another lemma that concludes existence of some set.› -lemma witness_exists1: assumes "xX" "φ(x)" "ψ(x)" +lemma witness_exists1: assumes "xX" "φ(x)" "ψ(x)" shows "xX. φ(x) ψ(x)" - using assms by auto + using assms by auto text‹The next lemma has to be used as a rule in some rare cases. › -lemma exists_in_set: assumes "x. xA φ(x)" shows "xA. φ(x)" - using assms by simp +lemma exists_in_set: assumes "x. xA φ(x)" shows "xA. φ(x)" + using assms by simp text‹If $x$ belongs to a set where a property holds, then the property holds for $x$. This has to be used as rule in rare cases. › -lemma property_holds: assumes "tX. φ(t)" and "xX" - shows "φ(x)" using assms by simp +lemma property_holds: assumes "tX. φ(t)" and "xX" + shows "φ(x)" using assms by simp text‹Set comprehensions defined by equal expressions are the equal. The second assertion is actually about functions, which are sets of pairs as illustrated in lemma fun_is_set_of_pairs› in func1.thy› -lemma set_comp_eq: assumes "xX. p(x) = q(x)" +lemma set_comp_eq: assumes "xX. p(x) = q(x)" shows "{p(x). xX} = {q(x). xX}" and "{x,p(x). xX} = {x,q(x). xX}" - using assms by auto + using assms by auto text‹If every element of a non-empty set $X\subseteq Y$ satisfies a condition then the set of elements of $Y$ that satisfy the condition is non-empty.› -lemma non_empty_cond: assumes "X0" "XY" and "xX. P(x)" - shows "{xY. P(x)} 0" using assms by auto +lemma non_empty_cond: assumes "X" "XY" and "xX. P(x)" + shows "{xY. P(x)} 0" using assms by auto text‹If $z$ is a pair, then the cartesian product of the singletons of its elements is the same as the singleton $\{ z\}$.› -lemma pair_prod: assumes "z = x,y" shows "{x}×{y} = {z}" - using assms by blast +lemma pair_prod: assumes "z = x,y" shows "{x}×{y} = {z}" + using assms by blast text‹In Isabelle/ZF the set difference is written with a minus sign $A-B$ because the standard backslash character is reserved for other purposes. @@ -501,11 +542,6 @@

Theory ZF1

abbreviation set_difference (infixl "" 65) where "AB A-B" -text‹In ZF set theory the zero of natural numbers is the same as the empty set. - In the next abbreviation we declare that we want $0$ and $\emptyset$ to be synonyms - so that we can use $\emptyset$ instead of $0$ when appropriate. › - -abbreviation empty_set ("") where " 0" end diff --git a/docs/IsarMathLib/document.pdf b/docs/IsarMathLib/document.pdf index cbe9c39413d51436188f86360ffe6cfa57d503b8..b3285a7b92c1a20b28f34bd407c7de15b7269ee0 100644 GIT binary patch delta 4836909 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%0ArPl=9SsHSK7|*AJmU`T#TTX%6#LLLZ###^ppD> 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

Fw{+uOFqPS1FmKbT3ls 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

j`QHky~ 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§XBRu`Enh_Mtj9G#6iQQyH;*+ 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%0D4kR3T}I>~kG>Z?EsEj$ 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�!&GfbM-)ep1h zd~GT+59Xv>>S{Y;5{zl(-()ME&n1M1Yzk4!_cn#W*b<=6HUJqgaZ7};MtC3V@lrvP zu8Pm8kQO^f*;~?Y@JllHGHIbkXn&9|#iT=}WVHjIfX{aoEO2%U_lL^0Q|`#-B!-xV z+tKK-6MOf4(JuAug({Jirz0W((q&%P4z+uLXqtgAN@~PImNsM-Q4}t}ppZiW`66SC zXD@2Em1Sv81;QrqSJK1rrtKwfS>5u{M=0?-s~dd<{w?+4(0aS^Za;N{6fNXmG<0T5 z5nBJE_HkutP878Dos85=B?gp=@Yx&G?*OJ(f}Ij5hF%xO(OZG%RG(&0t-xWzQR%Ut zk?`RZ4|$%3zX8Qb#tHtD_ELO6_Bq|Sv0co)(W2SKHe_Bob=FdpT`6B>s86`Nyr`( zHI)iAlxX8Vl6sq*M!og%kF{Skzd47M#r|U&IiB+azN%4}%;>mIm-zZWzQL1Y512vH z4~=Nnt;&uh4-;X#Np+f=Qxtewq4W$0`bohuBZyj=#;E;0WCjlNF&=mBLt&c?f+8Jz z{o?Ec9#c>l+il37e*O(J)|L6Bp)YILBe?5WUsN`hLARU$O5pK?cbnhAU7Za?) zG$=jPJr`AUvnKhQmvwA2x)UG_bz2H`q5{5!QQ54S2B>OQGNWC4OEJb1IZLhYm(*aK z;Ni?B%`Bci9B?0}hLn(7Nb*$?Pawf4L9W8JwniXtBhEF}?3T{W(NFJgb-T5kD7pG`HSr9I ztVQ{*tq56KC5Q5!^})t+8}XZ5N?quw6h zf7|x=-@P4|8rdw2_}E+~-RO&5#fx!Z$UV7JscHg{BRT~Dq=8svEq&;XzKkw zpKiEU<>x>>35s6?UC#f<2A<`{#A{;e0SF-?g()J<#C$a$LIBLNyZ`sccVR=PgWzNV z)$nj(H%(6f8sHGR+agCFzo@_vnYf_1B>*;P=U$$+X?h7Dj)17rv%fS1`UKxR=F<9a zfm|L8I?y{SByN-YE`S0Kv8R3e=H=s@1j1Vd^FNCk9|Q&vau*C%)7u#U9Uf_J`Z7QN z=KA@(>!iX7#99Q43G%>(p-+zgx^{7X1o*-ujbv2i_`N>e087TI%l=#B#t5AbG;7a- z1G?hEg=$iVfH8tcZnx#Ie%@XB@`q^_EZ{%GxFBZQrZ+?wT{xt~Xm(Kc7uOhpPuTXq z&;5#ROcVgLphznmoTg@Mm_B$U#WjTK7^BS(m`p;`!~a|2%ji1g>#}@vTNI~hgAC>; zJkq$0#uu|W;FSa~lX>*NeS!|iXq(CyV1S4yo$F_#SfEQ`;Wv_>;A+1Ao5uphe}P~? z9Wtyqpqvc~#HLhU7)k^r$vybIOOosl6piqIv;WzNdnwQ~!AQa|!Xt9!-@L{!1HmVR zb=d#&XjFZ9Z;~SP$-(IdQ&C-{>fH!`DI6uJldM8jrY>IkwMOhr>akl6eLgXXo6mY&Ext<%WFL zOd5n5rTqXPt-Q*!#Hd7F3pL}|$VxLOhXW4Jw0B80d~6%&llR?)pis6P(@&7{_1sWZ zjN*8=WXi2P%uPc(Pj|*dReqXR!1dY#!u&e+h$qNP82n7yOln*l+$5fgn4T_Zt}*_$u2)0F$U0nE8|;R-CHI+aOT)IF~nL2fn~ z!gQafLdJlU=7G=%ETeqzw3o0Sc@i^dm zdt)_+uSPci1DWrRYopg`)(96M$lJ1=ig*``-8B4)KXG(7>s!M;iBk^rOh7+7)K#OF zM!T|6;%QUO_Sdl+>J$HPCaDR*q_h$6iwOybg=@y+^l8>HubcLINNtXFE8LLY*`YB3 z@`?}c?C{Kj$Pw9%{HAG->Vq~7$SphtszN)8k*7tRDWq*IMtG)44}9*%byITkG8B38 zaP7^S9L5r>xn_Ys3Y%Y32-nSPxHX1h%-mTC=~>OC!yl?C~4Z|C&CYpM6a8lQE7 zSX4WSx){t_0;$r4H})`>wW)NokON785P|&(HnY!X+`;4UV=5m9+^KKD#Nyg4KZT)I zTO60wn0#$G$I||C3G6VvLO5%k8Jf{nS*+^89O-_nK7Xr7__+$FicFsdqQ+^@R^Q-xhD$0uPDDj$ubrNIgOp%9Ox=bWi9}_PEKplO)%B5#B?U(_(QT)C$Y3 zl00Sh;_hp>-9O0&B(!T1rt6%+O)_~}V4m&@_?X~;o7r0_ToR7b<~c-4OJ*jb+{xF> z%<<|*s!xtD_eqTX$gB-jh4JlEf6$iIJx^Pk)JfG~QK#?k&2Mo6qGxmvq#>qIGr$jv zOmJP~Mh?@>BnryXA6m1a|K);T^BE+zl^NKhBC=G}2zgUg#WB|=lz^(PGeUTZw^BDkpp0s(1Zmg*1a4Xp&m#KwJ9#$6q7Cg7hHV3-Yrih%3!EuZA#53? zPqI#(XwF;oGj@P9Fq+L|R5RX^5^*n8L2*4n*casZdUKwHyz2U6toVCiVlllh_2#Bm zVQAX9?eA%ywLtJ~@ffp+UHrf7lF2Kw7t7Ue#y zBK_GFpKOhW+iZpQdKJop6tf^{NL0{~_8@}x_~arU!@={9z9qv~)rxRSE zEqPzP9=p(bpgcV79ZRcgC?k;)_;QnKv#D2JYkbmIEzsG0h$yK}n!WY+x>(P5jNBz( zNgkdz=Z6kc?EM&Wn>&?IrF?zENn8!w=E0nRDRCFM{31b`SIG1WoZa`sF834YZbQ;C z4?)Lmn$GiC=lR1;ek{nHthoY`I64)-$!0Vj6+ANs;KuSwDj1d++L^~e?GnEZbaku( z`-^@4b<^S^axn!Cv0v=mej>vtonHCB#@^p8=$t)*)=c1CzC=nB{u}9QZDG>>IQnU< zpe^fp+J=)>oiM3Y7jjZT;bRD{UawYmoSdgoiQdM=!$goo6T;B%Qx!usF+GwWZvz>L z;PaISz!ht%1oYKsOHc6&(fQ)GpxqCBm%{~z@z}|ocJ4}+>CcPAw%LXQrl@v0&xCKg zKiX-%C5L$0R^%K^5(&1Q!M&&K+Xx)iY(UIzF#2Xr*e$~i7ZqYUL6vI_^}tgSKAHh? z_|cB}3xo72-;S)|Q`DmbO;_vB7oJO9*)Qc8AY}n%PfR_X0YfI3vIK#2X&%hdwLlz?0tBC#u4wDN&ahF&=uDD!iHKeV!j4 z5h3qWMoWV-xBaBn_j-SZs$*|VX^vS`m%U2IR61n^6`xiam7kclA$9Uf&6^a@^T)Uq z(DEUTaZeKVmZ74LLh*O#zx)bRYJb&s_yZlGi9(iCID9L-FI)ygEq**{%<-(qzOAj1 zI<~uPyvCexeo*qI-MVz#zpvK`5dgXi-+t9yAMz3J>?0+?UcX7ybDsnyr19*mT9I{= zAgR1)^c-yedi9ccHaP`EbQBjXi?=D@31(TLU|48;FPGBC2{8fB0coM{A0m}Tr;29C zZ(%9}?Adt2YG+$Hb28G@gD(NLi5Z4)GRMZ|XD;AWYUNkr41YAv)7B%K@B(gy^nG5- zWa7p$&79oyzPsfYh$HRs2hy7DX~50n&q22l?sZhltc_SyxU`1N7wG|B?w4!VVR_}oe))uF}W7% zGFK@L2zFVHy!tyl5Q7su%Scpo(k9`@k0%V(`E;DgSEH^psj=GtVxtDp~NS5u$sCtFv0Z89=Q2OIcL*Qv6{?iW!KFcRk1@%-C9 zr-n7UC+5YB4NNH&>`hcblY_8t#E@!7eQ1>rMYSASN3_~D-(H@p80F+Q0gi^zKmQ*9 z#Xvg0bEzhRF8VOBaPqSKVH%x2OeDUj?bOV%m91@7#oiOcvX!MZ*#J|el!kIfT=6Z_$r_4Bj}wpVgVr z1Lrp6*7Vw{aC$aKTd+4_|38V4S+B&_N{X%e*LMs{qwf_vc@bd7=9{+MZy(2hwmoo) z)3KgrZ`)JKFIDeHb^8#on#R|^YMO|`<`Ma4c&A*j)sHLeYJ^InN$z7VV zk*P)d37NWlQj@8h-p5}TZaJe?T8(sZJT64e*i;+rjR$OS7i{YC$-GA%J$KQ^yPms6 z!M^8ind(S~T$y$iArDhms()|9tweF|`u|Ql+&TpyETjj1RI{ScZ6(V(=(iuA{tq;! z^--5Gbq5re5!n$cw{LX^SqcpoZ3W7o@8A9pb;V!rmoaq*6qoQ#AS##Ukuw*!Du4$t z3JnX>2Ibf9FaHAz{$tmdF?9zNm!g$5Dwnvd6c?93p(F%<+_)9K`&ZP_KA0gNcfe@C z)jbZ7YkbS(n&puHf6ezOsY)bOdSrEb21cXYs^;5wlG2xdU-ad#pY-~9{rTxHKU}_K zl>-HL`T4I;24Colxfl~wqI8McDPzOs=l?GM_@=dYS_h3!^YYaaKQLO``0~%6e*>tX z4?(%C9JP>toL(0_z)wk0%9oHynPj$AHg5O<;d+kNN2QHvA($&x(>d-)Dr)L*|G?_k zm%?_`%crGN8c1v9A;ks~fd#Ul!!yL?GeWXHtUrl=Um-_2gzQNrThsWNzMK-{p@-;N zVj>8kc#bT3WrDAf{jN#Cmy$BhoiQKx42M%1EIAc_eVk#~TBB_4q#yl`;bRN14z|-7 zAK6v;;Z*51IOUA*3=fJ9Z}`c@eTIxbX+?B%nFw=ov_P;w1mpKA=Fmc5;}2KC_>FQY zwkrcI4gks*8Ayh26lLE*$qN)q3&g_BxigZDD(loidb>k#_`f|51{AWgEesp(>%(sg zJci4E)>-&nWzFBYwEXU_%MSvq3gGuf-c= zs)pfkIXl_(gG##nQr!gBhULhadjP#MWK8luM$y7CzeSD~BqBSOe zu(UXte8{tHPNbMQU~q2&~~HcIFp);OzNt|pVJp9nrG`< zd_u-19ha(Mk4PvP3>ed~L*$DgeD&nNwZ(%_C3!VTL5Qf>sH5P#UZ991mF$sviz}Tc zYYXvu3%h%W^*caO8QOlwq2eY(>1%z!7V$nl}ZD`$w& zxDcRPR9<`dq6r$6Vr)rT%7p-FfzI zs0?t~EBE{`!lCmC_hAHgUPajYF7S=0rTD(}p1XRZw9(wJhg+L_+&cFS>8+{WkB2_K zopn6EyG!ZGcD8{s($1FuU&VHoh-dk^#qeZ1%fq=4dT94{_Eu4xMJiU>4n#820!D6n(vb+77LZOw;IvbS7ZVb2D4Z-BUO@sx!#UVF zo=$}Kw_Ob&LHh=EaANK6R(<{*lz%xNrFi9YN3A=M^pdme|IH^&fy`GDrFfi&2>Ib`ju!#nze5)+MYA%!%5HZtRyiWRQivA~XV`$5w=KqUYL5N@qU5KCaeT$phoy#v0o(WlqdCy31lWWB~Zj4 z??dNFbMeO#)URuQ`N;8y_hFrnhsq4%KCE%+z}$v6Vtdb+sam)AgSt2Sv6BD~9D9pD zJ4jLl3083^sBudH1eLmXH5xesnnWF*Ywc>XyJ>Fd8q|Wjq11Oa_biUN8$qPD#wU22 z)riTi#YeH;UJ$kvfR!C-T*BNvY0jbzS{iV4_?yX7$TAmyG@UwIN1t_khl(sT<|{kC zhklJaV%&$}deVZUoQIAeHKPKHYzlR66OgyvxaDz`!1Ks@p|IC)LO|i!FFNXl#9#nG&2@#3SPv8wn+;f98w| z?ioqPZFf{GpYq&`LEB(1uPe!!?jY zol&bstbr1;fbIB{LLPr+8`1cwYf-HR<}Q&ke0(vrJ(Naf8e!^y8kD%VJsXB6Jf zpdtiCYK`T+6;cc;=2Vd(M}@@m{dmCiNPV;h26E7^e>O7ItN)ZuJ08MXogeH8bbpN~ zZoNBy+6&=v|G-w>qtOd$?PMzWQildB&oQ(lNiAB2vUR;mDh1#ii3^?vQ8nZ7k47)v zvebBzw|4A*7rG<}!cvQDB(fn+8P3Uj&ZKICH;sGFMq^u2xv>ec+JGp7?YNtZZdqxr zm&Y||(dwqu@i`LTP;dB{r;s5TI&WHJvk?t{X&~rEn{r5le66P=M#l~zP&pHlpFHSo zA}Sq6EtKx4_v?KhY&(|fjIiewRe-ZMkVkh=oiF3ymb>{`6h%Id?S8=#hX>(mRSOT( zQXUG6;5EB?$v{}-CbUH)jIKO_8cOjNksKEJ1g+PpjBN9|9U+88KC8q>JsM;KVG(_Q zA4(glITOO7hO$G?+2~}E)2Y)CttY7dwbp99pUVN>39jXbubmI7gCnG&MA zrzuV|QVQCc2GR6bgEvd!B$L(>8W-O)IkdHtP3TsRZtd`q$4z*HJf0@fpbe0`Gq0s;hU`c$b7X<~Zmi94CYwgaOClGuOd&c&oXm6fi=6R5tk< zv*fQ%fuR;HD@YtgBBq%%gRETn=v4adO&UN8v*NZM;x=?B?l4@mn*h}5$wQgV>OW-& zLE1ry_B~?-e>PTNZ!+7sSg15JmN?szG~;;2mF>DcgaOCn4hNk@i+9TLV1s;1rNT_& zp$pQnMLXhnX!cUhQ^*pPV{Q$9vRO|gYp zldW;f-Fz-L3HG4vuV{_^+3A074Ji)!Ht%q7jBZGsN~-WM1d=_30pIqfob_t)PWg5u zr1MZ?mXa#pBTFsX)wjF;PI5bg+R03EZVi;tIKsdhkzkO4^ z8X=UI09@DC3H-RG-Q8Z$n{<~?tXWq-^)iHtlEq54r?<-r2h?ug)4c*JlyC3> zrCg#YuQMpr)fmeg1%hv8UzD(ZSDlFO1kTr7>F`PcW9BNaWGcG9cVPS9MlDNayV$dM z%I!*qe(_!(eF1}`u4|7-~RDQ=g<55r@y^XyhRlqIJ&+6{>ktc`etqh zgYx#~H7SGc_Wr-yuV1uwulxgAll<`Sc>ntE_kS`Fr+0yPtqeg61%KTF0lsGl2V_L2 zAW{nf@GAm;de_Ad29-0hJ#D^aPNLS<^zlPb5aP{6P$rlH!Dkr=1bpkuz*^;_Yay6B zpT75Td!s1$_9VUu2bq68eIoQ}n3U;)Rsf3{JPWc2(8KOQiV941@aezLeRhLFv%v+( zqP9#h@h7VvMD_Revwtofpshkt!%y`waF3g_x-eb^VEn{x>1J)(`@{tlJy5tA&6M)L-Q&O}MKgZ0wsigsStcn>PS05` zpAoSnQJqpxet$BZE&p4jTAujq1GBZv-!QkIA$&=SOrNaC^qJ7>tmr~YI42rT8RTqX zt}r9Ql^@QaeN%Pp%G5$xS1t=1JFd)86~6UN2&5*7Erul4Y=|jn+>2rMP0B^(+y>ex z$9YmA)~7}}E^v+`vq6M?X1Ro6iL|G-{ySt8fqh1Nr+)D!EkaK!xc1UMnb1X@L@IFBo`A{gY!F`dK1R=KPFOwYR za_qRK^ncp61e}cu82bEyM-B%pL8KvH!*f%q6EsdVmTYEB`FjqE zD>$QEAeEfa&I_3IsBgGMdE6k_Ip^TZ#FM}jPe^9UBJ+L{tNiX>24=xxv(7b;*I7M5 z*U3UZqoLKeg@0~YR_>5ej$SH)RemZWT_4MRWPbx1m+x04k}#QUFHX-Uh~>>aRhMtR zg8x#Uq;z|qo}?@hRuF0W|H3RgXnJ#blC$4NH(XA{xHxtb9Rx%2q}M4sU&zK5JUhMn zU^Z@`T*=1L1EfA+kd={?Yw-RVAwcRF5(8! z%b=g(;*Vq1gUm(GHGpkT<2+-4Z}V?37;>Nrl5y4y|HjA0bB^E+c|O2}P6bn+ditr4 zh@A3%V*_|@W@k04Mt`K(G!B%57SM^gjen#hEmhj;Ob>qNzgn=d+MHat;&Os7!-32iaCnGQtb?htx7A$g~zKm?NzO?%#1k#+jg@ zK}B#^kbxoPV`z~*Qp;rFk!0Hs4u6+xAmXo7eJwREu^zTlC-Byds+-Bb)B!J zIhupai6$qF8(+@nE_V26;-gbzQLx_5cYmvHcs?&h z?a@GazC(VS1SkFKrms$KiaSiy{8h%&7>v?DA8d#lD3`|5aAHIq+0t7ik9Na(*4#qN z7h+4xVoN@WLxV2e@D7D1+9>2o!fM*1$lWhAQRtZhs(;g?>WvG=C^pq198?Nc8GgG$G^iA~tPUH-_659h+M_m^ zBOY90l&cgjVZ{n4b_PL(?=A!+2c;SK~&;Oia3L92P36)ZKX06(a*-Y!OQ}Y6o1-qjJ=Q9Y8FzB z_}AgY&BcwSFBf9xLkPD##^A^2B@Lj$`k6wxWJeCo#)cozUN?|V_Sc;E73i6R6fVqM z7G$*MXvYD?mnsMb2l-q|XWO0{B_89f3ZXtV3X2@F#RqFV-Mq8UC!gjT5;lCk_A3f* zsnBomZ?ly--ny_CWq&I@4N!Y(zsxwm>xk2jyU6QoOI)M?Ef%=CW18-!+IdMTQ>)&) zK$4ZVxLAjq#vfOVft#}iM!Gw#b40g=O|g~pcefTCG-9M8N9P98XjTxdBJ$O# zQNGc#2p2bqP;M=)K9PD@-Q>+BoE&YCu*G@cUxkiQdX6G`s(1# z@!SBl#I>6%2d$1l<+q%j8#*9zn?W0WTp7(|g?e@g@Q*2UKZ_pTN1)r_oBEPdggV2% z3+q|i`i`9L%YQ9=YP<7&`Qw%cm>RhT?_Bx}EpX^kzzvNS|Ew{bwE)c(Ep6z#uyQDM zEk(D%?{`xbkVF&znEbD|*8b2@CjZtf_hfmzM?UUs^W>+iU8r^}IK8o6sv$2Ey)vpS!$6#&oo0kH_3m<4 z#MBt98F~6WXAHKUy)&q}`30!Y{QTU-gIr<*HD`WVs)gM%z$O5;KJ(K64>=CaSfBaV zb61(j&3}>nB}=1BSSh4hCU4ZcC}U{|n}xsRaB*38nzUK~Od+SQr`g~*^+e}R>B-1n zM{wC!o%xNcroIRzSjrwnb?lb`D$Z{dHkeFb@P@b}x3N05+WsT$^7bETe=rK4zA1&i zT>7oI38!zXw*1HsWXCMjq>Su_qpR{<&Nk%BfPc$5n^)JT$eA7btuS@MZS$Mu3XR3E zm`@{^RjynX0w9HmrztO7q?`s2dxJV&L?sw zDlcyj{{sBQuh*C13{BQ?_d50A?+BK5j`>!12Q%- zmmy;cDFQV)mr<=67Pln72NMbo$3Hqqi@tw-`yaVm6d9M{3Gk~f@XITQ zQ&7R8<|ot?5;MP-_G7yPn_k`RUKM--Mgh zSGieMUpkSLnmZ22|i-kp|y| z8q-gdcuvx=uDc`U!C!DY&w7b2j|Po=!Z7n@w^?QM>?2G*i|>tm=tw?$PQTl#HR!xz zwAZYO67aREJ!w$ET-82#GHDM>1RY-GL!^i^HlOfwRWciefTiSp%ok5IJU|{K7tKKr zf3P-+jJxWAZv!4+0%dgW$xk-9z)&~I*Q(c;g2GE}UFgeruNC5UT5&$D2A&8bmyT>- zI9Yjht9<@8``dAf-g!GiF^W@;Kc`b+tA2!FMFM9M8mWZZD=@ZHDh2F9bz>EQ-K)O8 zWIjUmorGT1bEO)&wwl6nZ`$M|Uljyoe-uaEb|f+6To=SzIWW1Px<$ZF&XX+#P44q` zVV0EKj=8XZ>cXs50rAqRIc6W2mMETpQn`OW$Gf2wVhalJ!t+-5g_uyu6*Uy%9mzn5 z_kub@oC_KW@m^SGh;w0M$98_-@WdM8y>eqA&UIWvT*pvy4J%%W45zXWPmj~Be;jcX zx%#clK`=nUh;?60kQ<1@N=0rF-$rf5DGg9^n2}FiwnODKUdVop$2HX=J-<@D9!cbt zi9XCZMI@M`FNsBZhY4XwrCYuW39W{N8vOFjR1-Xj&s@oeJU!m_ILJ>Pl+kSsA|_g>&AHtbk`tvVDRK9D!KACu?(gbNX$-F@ovr zw{LYH8l$Y>n1bt(#UG*z#YJs)FTx# zwfpR>3VscZNo$66OwIlTTEZV<^|(SV_zLzj&PP!#)lS1tkLVL7#Dt5Mj&}YtJa6bp z@K^e@W5y6WZEFhgf5$d7bwg2Z(s=pik{oWEC4OFwUiVFVH%uCY<&znC&i#H)wIJ$^ zdVwT_+x|zSO+KCaecW9vjWCmwg0+SjcPM_s=6?Q}G}F!W1M8GVF1e2Se>!02`7Y|* zk}(>ENFTH%E4kf!OLoPYfi2k;?Tanh_ximqK9!W-vuPDLe`2|rp_Ck_P#}Jp@2{%J zsU4#snHCj+smW|C1Eq08vO_WjF?i>%$n45d5P{Zxz+Q_b(gZl#OT?LC{JZIW%F1}+ z(Y4_mI%TcRB)4!J1!c&W%HCGu>K-h*JT5*5Vax}Zx|iH(YN70?sZvr{|BR^aCHI<| zE1QnMg-O;Z0_LBWB+mzC0kM~h&j)G&YnS%V2W)=_V`&On>3BFdby|bnX#`P*?VX9t zM)`0!k#p*wm&kE4d%taYF0KP(Ao3MGk3b9~&=gF;=qRR$D+ZI9^XU(bt#ykPRN)E@ zT0@$YY;t=Ce>mB4>LWE67=f^8A0)(3*;(aCBqOddy z7`_+ia8pu5iGRD`#t9vD0XGVN!TsyA_UeVc5gADmWd%`t`3gRNr+Y(I@vY1&Cgjgd zhN zS1{$<$n3P$bCwM1mzL^7ELG*wAc8TyGbnP0=w4XDNx>qmc($MCdR@F!E+_GxIke&R z*|4Fh*PvgDp5iXY65<1T4Q6abUZkf*W`wz1xU1*RH^3OvlkDkZW984pUSR3Bx3r%b zC;W{QGgwo9LQ%$krPxt_(E_qOwll+?Y9oFX1)xC`+s+nQC?YI$B`C`!Mp>3yNIF8jU2nouGPyRKb=bmwN-AZ^>I!AtQOX&NA+)lCQGrMmpsrq z55gN5pr69I%6VMWem>Bf3-z|BJYhWOO1F`-4P#z+Ve3e}y|8kGe2V8cr;KoTW1BlT zKL~X@g8K+lnDGlc$)N<28V)XGN#%|i_2o*JcOWiQ*;*`rslrDEf{O3rbkHwch@BUa z5YQzVx78{x1h3AG9!uO&C)Wx%;#PefW>5u5;nBb8aQpl`i&FRg~Y;9@jN3^ z_m-LOnjlv6Aq-IUK93At3rW`0gIw5OFe0KpO|3X-3nHdo?WRKL!V8iz6PAr5wM_&W_y&z0ZK@>8}@_2P-nSVS&niA|G-gQ@R zl*;Q1iF=7v1I$>E60UK-w|aN37$`$5l>%kwIu^%&y230$mglOBr;M7Yg?IMBKF|bR zMMM$7EUC2#DNxp?M^{f>&<|SXlHB7ZF=y9;jw1KjH&0eiVteZ7V8MLMNfpsM{A$AVJsz~BzIf_JOU!T!U z$U_NJOU)K#FAbKu+P8CfrL?M=`>GhOn^P;&(wLpA=;v0VhIaO)U&0&?liCT>pzxg& zZW?y3O_-BMJtOTLUCRKHOOKbC6JX&(J>L_5I`=K1c(xS&O8~g<*-8x?U)!CW2cWe( zqTD+8&Z3@k%;&!D&~Coyvuf0MBdf}jUDJKnX0h|fT7YjuX|jf_&1rvX4XUy6m~IL*x)S@SQMK!SCmbf&DZo&DUDg|a{LSxo2p)D=w-jBKcyF?B!n}%)t zL*3ANp6;cUBVq7cQ$}a$$wB80bKy|zzJtkSMjB`9&MPJ*3|)115ZaDrF1iuel%RIcV_^1bpFclw*Iz&Ar{8VnYXvz50w-+U2(#ha|C@wu?F*ILPpttc+D@r_1xrU zPRGIG=vR3q0PLSM`kk@;zec|h$nE+)?iR*HT7fY8-27>y-zt9_1^5T&SrhPP@C&ds zPVLZKj+<=i$BhRMWv}Mz^03_Vp}`9lsE>&PJO(qhCyH^hd?5-gK|mZuaXv2EgZSxU zjDjUC9zT-0IQUc~BxQepe2Ow5(%+iVtNVTk+WjRWEKf9)wxa#C@&^VQBcjE5h5{=7 z?b00KVXkkP8gI7g_UYVe$tJ<)*+Q&q% zu$9kFlfL}?`1m)9#5smN%L-enbi%nxh=D{yw!pcjfEW0!ffIxhDWseNDSj(?iG`f1 zm*h~i2@=Fw-4rzC3kViWBHmDhI`twA6shSz6EoLyH=FX$@q_wJ`Kmb}bBRV)EV?9Yyoryny|&c;$pYq^Oa!HGqxTTb1NG zEuxDAE5u;84^o@91amgMI-AN(vXCOXb*Pe}`e-v?u~#lYms0XBa)i_{WeEuw&;^hu zA#a<}RvLe)f_fI4#E#rqVDPDm_f~SqM6RVs$eZz$1WCQOg1JF4B+$=5h&~EtwurZY zf~<|VK#Td9ix4E|;8jX&yfG1&IJa2}q~dKg1`u=$lmo`xpa%?3F9?h}}DTl*SRwM5_0O zN73vp&`hlOI}}K5PFQ2m*es|eC^Z6AgK{GPXH#xI1)tXh^(-)4b9HxuP_i2ew^!GM zLU_4mca8{kR>&oW<7`+;aTo5W4Q)?-Zd_o0PEypIMU?sW^tQzxq zgM@#k;_fR1z1sSR0yB3h_Z+Lm-!X+6i(b5X6)stI9$|}P8zW(*?&3$MBhEBdrTEpw?3l_^~^HiLkJeFZb@FWjU za3Mf>EW;e(DLrbbu7%pu)m6BBb9ejk=k`TYtU(&z5)p{JloOhd=T6 zN7%K#x&Q3ZCT_I7U4Op)a`$olc@wwVyPwv7{Pp37+po~*wcryghL2jN6&&ilYrBIQ z*TN50JjGOx#9FtpV)|DJ*mhxkir_h(9^K){pH9_stYr(U$NbZ=dM-H->k~}hk-vY{ z0T`VE#uk8C4k?K@1Isj9qfRW?D>_yQnmuCp)gJBwg zsWZTEJT;CS>Oac|KM0~cC5Uo9=W^NY2V3D5Tfz8{f|p|&gjAjqQrV75;m_)CQaA~% zn9HKY)+67I?thTaNa$%0y3>@?{*wi29x;>qqf4@)Nmjw!Rs@jQE z2XQ}5iTg=T4R3n~zb^~)4&Aw_`N1pI)1YPEhL+>8&~n~}mg%K(LXV;cx*W{Fn{t@~ zM$Wpu>b$83^K7v`33H1vmBF4O*BO{fJQ-6L$B#JB^+&jFu})cZWv~}1X$pU|{H=WJ z4ExnG*ozdMg6XWsyWP=f|K4KC22KWh3!xd%fn@E;|vs)Uh1NK(&DKyK#`}QC@+U%#sZPS=e~0M z=e{9|<39J5;paX^S4wC8+}CeZ`%S_e$axF0Jls*823a0IA%@dje zA0E7Ze|odl{j7iS{IB=lg>Qhnd@-8fFPy-*=rY@1C4HL)^lqp6M8_mPn^ ze;llF=4ldL5b;L_I>iAD&wcMqCdQf)**^a{a>Pf`Z8otQ_PX)!J!cIDJ=8Q-jqfm~ zWWZgR$ROWvb~bJPo6Wdl{0{ph`gftB)Hk@$Hyp}UgP;Tl#`~Jj7_gszIP2{s(%Ha4 z>kKiMV)g?Eox~c(M$XSb?!GAz1n2z9fAE2H9fA>s7L-Pi9LWGS%tw$Mlc*I+MgvGr zY@Ef0(OF0a2!>*{#{ni|k^qY}>yKh`l(bZ7ZiLAxN^+pa(qDwh(V3LaC<+srSedm| z)Dc$(Ysh~HjH6};s3?uV7$og`*|Lp>l79@1rAA>1`-;Z8YKJpR(WS*#x#|Hpe+G*} zDem&$gJbcmYUe{Z_6-vp=`T;53BcxhC*JD-@B=^yu>Lhe|wv@L)SyC?p}V9lqQZ-(I1vUWP&YMjk1w*28n7$ zH;`>Lv-z&4A&{dqHN4OJ0XUWnmTF2%80l^(-pW&r?7TZ3m?lbdjt$l8M#1tPfBX6Y@zEr( zT~kRn1lAB$`S^9BnnU%qmcOq{FHJAGi$^wr&$^KdPF8Wf`T;irk_uqmWS9v|0pCwE zA_B!wQ5fc#zyiLZ;XA5?K}wEt)u<8{Uu7xGYDU=Kl+XdL+V6EzT;Me_uN4$k&~OCLI(6 zG964ODBzqVS=V|wkxr!RvY}yrKbwdNj04=NKiB-}#x8qYn)~9IH?WM+A8Cqoum)5! z9=WK9o72l?)yPH38 zK&1$yUN4B?T&^1RdeVIa)mFvm^r?q)#%kHKWj$)dz@$5B{@|%cusL@Wf(!ym&mmeJ zd{sb6a`VZZf6)|5T||rnO&yuRlJy4s>5!6C9*OGJr$#3E*hSB8^zy;dalK6V4{uc# z$w$_DJcJZZgx~($1R>S*wu9MaC)^+6=>c&f*GP7-r9&-;|Vhb6;PrR5PjPtx+_J5oaLzn#va%9rEoNs5u_(8*DHh@9z32 zW=YP9e;{sdQ||5WW0tIr7wM^!O*$BCmurb_&C}$7Yl{c7O6?6O z2*cA2{I-qREXw?g1@sm=(>B$?o*_Ifw0J(R*I%vf2Mdkt81qxUJzbN|%BwN;#A7n| zx--~Pq4_Lv`mUvU zZ^4@jDhr%1+MZ8KAwF$?HDAlv<+athkB8h+M-KA0?tCM|WSJo-Iw_3qP+6gG<82xG zHul!fx4S3vd)4*N!DLxNI=Pzb{rT#!JQ6q(O|;bVz%t9Slmc!J{IJ>Gogv4`lSkRJ zf1%bAmB;Q{U``33m*H#y==`#ket5xK;3>F*&aib7OeCyXAGt4hNF+d|8%vRR7Rlq` zC4V0bG^D4HyjJaEbk|`~JA%}*yq^un)%ijRtkkr(Tdlu++P!nV*awjc4x{n5jYeX- z7HT$FBf4HvLjRSbZ#Wzky%cJlOz$w7f48CxDIS_o;B+*zS@E>N%e@=<)&%DZHiIA| zy?e|xo0kp1?+sn18}?gP{~63&q<;Zub~IV*6RirO1y_mo-|q?vBipi0)M}lxJ(TJ6 zBCW9a(49x=;t6U>!#j_&YXxbx!XuY%q@T3TRRlT*YW*8HC7F};``kk1iJtq4e~8y6 zI#9`Bcuz9QPeU!#;Cenl%7grRRh@SC4tKz?RO*G8ad5bkOtijb*k_cFg3jqf^0MCi zZ}c(53~e%yOPvfrL+UUC8WXJ=KN&TU$xtoaA=t<_HK@@%ANt1;N8(-l=s{Yr`GRUm ztMVDz+otp_3hYNuZ{kMNs#!65f6UT@W0Y$3sndxWPl57b^5a90ioy{L zorfUR$_Ixa6_w9KQBK04U@!uWD5;g9(dyuik3>HMHu^XhC8+03uF=QA<7TD2{D=0P^6Yq0m9uVkuJ$SU|HlA)bd&4{yGOEX zOC?PY@gxX*0DI--&x^eL>zmBKZy(=&dgyQoB3QKg^6|$vpfBVFE}(-zxHzc=D0}(% z@8!3vl=>#60V%DNQX&8Su8^KPnSS##E8pJ?8vf+cN~X}a_y2tSo5WeUCJr$Oe*HxdlBnpR?}^kyO8C($mKix*Wn`W3(l(r4{Ohj9&IppT(Ae$^@=~B`sa|kjkhj7+ z)e8dN3SV435UW55iKZ3%yF|S!S)nBp^}@tob~gn~5Z1xP1{C0-P@&2@Vs`@poE0J1 zp4ylcO7>3jecaDt`JH#0z6td6e`^X+{_J%6Z1fz2@ox@WyKg~?eam}=li5Wy3(`0X z;?ErS{2durVt+3PH#S-+p}p?qDx2g)*;sMeI1^S2Z(Yyjp!?C2+XF7Cll*8epYgEo zK;?xq7i+yhH%EYrMExRTg@Px&9R2aA^3cG;$Y<8}GC72l9tJjQBLe!KfBL9rtrBQd zPaSQ$C;QBPwgV)0`f#yY3uWh{aZ8@TN9*3QTA|R=l+_NCU!y-CMPpb$$VNCmiVX)) zKlTr>g_tZlxsz|#6BIZQCb))bkQc$zaj^>n;kIv-_riv-FzUYV`Va&xY0soC~VMA#R1$s;A!0-4R0E=De-)fgk1P651$* z9z?d>jqHZOl-#lwu~LxkW?V5)A|>5kqs{EJz020Qn#l-*5dL9k(2CW1Uks%&kPXo& zmJA3-OFJ?5sRXl)p?r$&nt+K>$%$GIov0v?n3YZ8{EYiMsx)O+f3mkFo`m1WF_o*4 z^g;(yS0kI_DprZx0K7;68W&tJal%{r;c#cW@R5EZOo1%nM9>)}JlCUE+R?*G85g)7 zEp;t**XUVSKDgTNyAWK|#{?^k-Y8E$Jq)iD!5DC>)C3xQwT0|E_6K8v+xr{2N%CWv zatgbzG#$#tV9X~te>EL*yTZosVbskDFI2orx$?=~(`HQRWLlR1SVo%@5c3z1B1rnT zYLO;?NImy7>FiJmzm{xO)S8}VF)>;)5;6@P@J)qo5Ay-FvjOtt2T%R&pE%ht@F3ds_hrD&p zHLB(fjXdh7(Ty%#XXnmJt~plAV{wnS!lg>93;B~fHaKdz?qW*cb=6;-H{$EnwF>q4 z$yQ+yu|P?Je_TRBJafJ~B9U%RN-;Qdu$C1#C2#(uuM@y7QbWbT);!~ePmaFl6T)A^ zLw8$ypSPPGQ~H$ov@%U$K7~vcHMwK|JgvG~8UlAy53zUFwB1T*>6`kjvCF-VwFBOx zZu7dryKt&FRDq+dy`J?EQ|SqQZF5~(S=Js;`K#X4e*uM(uBxAJSWY#kL0_doh4Z;J zvOhQJ$)Pl2WT;{y5suSHS=rJpRhV~ml4R2Hs8T`F=fNvnbu1GHj?YBd3|Q{-E^2?q z;9UFlZl%gC*-?ILm)38wlseXeIf1d+6MicrEEe#ChSi+l1_j2CA+Lxbyj(@nxk6S+RJTFo$kKbvJ2kHiDp&YKO zyCDiC2t?P?{Q0^IqEJ##>03G12#w#AQhg;;s;^|}Nt@(WlYntTS*-fxLM!LATtV@XiuTdb?*y}}UFx25Ntb=A}Ns)peue-GKEO%r9QeoAem%X-}bq>wFa+UlA| zn6-#$%T3-LwFsIA_b`pH>ZF$jeuMViQk$iFF0H@VS95DsJP{`imHqf*aKS)_vX`@L z>#JU1YcfKKhZ91}X-~75umj`9yyiZCHjk<~+?e=NJbT@G`o+#?`Y6fw{Tl*mcs-x! zf7UJ+jzs~b@KC{+X;M#7hI5tM4F$@y)Nps4v^+FF(qQ8i&hz8E7>QtdPLur`!%j;L zp=+rq7#tv# zAmCckaz8l8P*hcPSm@RcGLFTA)PlN!e~Clar{#ebq}F=sAg~(WZtNTZOs`$fe+uob znW7?C>U*jJ;%1=#KAHnZn6x2#YewkfB~nc_8WIu~acbejIEBDG|Ep3O|2{U7Q{+7v z;FBY{j>}%;mWnyrAIdqFfMLh^==e>i>*EFWxr??OxymyTH2aZz^0Ev(Av^+xe>=R( zKG?yPBw~cnJ*Sg7$SBgs_gwaB=!xA_ls$}ESbH=FDHU&9I_fi*d$}emLJHtFho^&4 zqtaG5KVMKmJt|AFfF7IiVU1g7q?lIKgTg_MLrJGW>V*cUG1jLzG*jQI58lqdV143Cdpd^f9o!Tb@c5-bG7;4@WDB3S|GnOAUhOLU}{f23AH;e z&p_=63OZW`@Ow&cl5aY~+C^P6Um7GdM_lM^b=(G}ko#kFtq!A`=|E01&=kDtD}@#f>jq&5dHkmt1;Bttt8Ep9G(E%{soxLX2P%4Tjo}Hv*N4DS);CV8~NOMKbC-7 z{S7Ju8^~z*nYgsAd3Xw|P}W+_WyBq7WfkmQ6+}Zt7qH5u`(TleODTNntb5w>23wq- zmjI$2yn(nF0dCMMo{#1sOG*SDFmx{8Pe=dNhLjgE^TXeodYL*3fQVhT!d65##hyEr zjBIBUZ(R$U)r$t)_?+~mCVg~>4Tg)=teCotDW)r`iAkZ0?SV&#FFSa)yBMrFLzaGM zWU!DoGu?S-@75ZvVm$fB8r1$OgAghdYH$ZgcwNDm$2ZYv&N}DO$5E(4_5je>3vPnY z1_X(;HbZ9JD{g`uK+URJvB$J`Vaq?r55x;(E3)QbMf+sffw#Oxs}vO;uuo*@OI2UB z?roP>_^TF}TzG=|B<}WA9g3Gv-p;y3B%iMEZSdV&V@3C7C6%YZ&>kPd%U%J0PF+I0 z4scM5kn1BXk|UYo10mdIQQUVAHA^Ou+q9AN^BSk(!-$%5e$-}nHE16efHAA`I~vTI z!M?K9KYR+IlS<9b?Av^(Hp`~Gf!$MC5aTo(gFi25?{Vz)fr83h3 zsW%|7+Ty`rB;gRrcEFB~>zKYEli$Y&|CdMEfx;((bU=n2N{lv6L>O5(#Ke6rbgh85 zo1;FLIX7T~EY`RBkrOC9Mn~H=jRhkJi*OUh5EZ>t?7@1qiI`VfSHCv9EH(xetCYl=p&{DYW(k) zeA5QyiD`hyX;|NdCtc|Ty*AX|f0}L%#e>Xd4eb;Mpj)`|fjRClMlZi|TyAJyo@f|{ zFBtq7)`g8=1U|A_8q@2>EWO{3<##?Gh0|x>fXIM=(f{w1xV;GZpHl(~^z1J=TJ{x0Lnn36WIP4bexvdlZ1;pezDWX$G<=fKu*BQ>T-KZR5SB-w)z26zNq!MGD73dk3^mGmPeYOMP>8#U%5b+jVz5bNyOl!v&&ZI+?gF z%Z3(%-w;I2#`uRlkTlNfc7DI}%G=)g!$!SBZH~p~nslJAH@whCkezc#8QG1JJp|An z{BLDgsA+LL>w>SvpESv1lHHPD2sTINj{-fI{2bAEGXsx@j=o&XOhYP(0g`UF#Lwh& zG;K=>W^5$B$e$J!zqpt6+-FBpHR`n)O0U&II?p)Sk$zNF&RH2NV(Lg5pZ}_EM?@z& zw8Y7*+#gKFQsb`vdwIxb?49nr!U$PyXFO#bXYR;0)OiRcMwi;`YaUl@*+J28xt6)O zLfiP~SivxU*i}H-yD%iH1K^o5;u?*o!AUYLeyKAcWl>xolN+gp4N!l{+N;Ijq#jS~ zQ2#yJ&Ex_yu-8?Bl@6c^u}tyNHW@>zS%uqC;nGKH-+3`&f(-g`KupbE zYYXKquq@-m^e%=ePTybfC2+cwK(88y|U83h5+eZaA*W90YmffO_cfPcE&q={wnD@8@kBF z=*dnv2yzy)Nqm_l2avG3M0q!h)T!*`KII{&D9tl%KK!Y|GGAsv(~-L}*hNZ*_d935 zEi?vR{xHMi(}4Y#o-JR%WZ#mMi55r?(t*>~uzfPGnf`qAmyXzJ?c(AT7v}7$rCU%x zx|wB4Hs%c$7i{h>OQ8Pt^En3Qh_pX1R%Ifem^>Br@M0Xx{tM2@9+UH_jE5s>S!|zVID}Sz0Sh%>DJTVh z!oyuz9C=0tJpknqQ_F^z!WG#gfe&XlBml ztl7nlHG*1d{oM|jQ2q!);ugcb!Is;NLBZ>;kbT|}eRBxDRIu+z^lxuMP#opNC%6vn z+3QFux-4Snl4oBEPJVdfRXJ8KibX6Gxm{OR6oo7H5^xy;@Obcs%k9E#`Qfs*S?*|; zuv1=uYvxzCvuHRY5O@e`OL)ze3>}M?`nuQ=ndLGAH-G|sul@}y$z51Za}Dk4`B209 z(?(us-x`Bj3>F57HbB=b4${ zHcsvA1n~Spjm#f6wTSf5ItH-;IO6)t7C-Ls_|U~4go?mU=gq)%+%1^TcgeZMjpwt@ zv9-{=*J7-CF3e068VAyzEu2s^NLScQ2qF0KR!5Yd)}r{OEgn_!uF}+qu$KH{g>1tr zI$}5C7t14bM0Hm%Y~0AI8Y0gH9+DXoEczT)1o$1#ZdjUBb$baRlEL4Jf>AeS(koxI zB!bTC!)>kg=wOcDZ{dWzY0<(AN7ytCwKqqw;gK4W>br8_?bIQN9(cFUe<)L`-dfd6 zHHWo-6dKeEMgFtK3xONr>FzoGyLv;1-cs%R*+K_P^%Jf_c3rqhT^w8(g@e7*!2Bf<#6gP6g}{ ztHBgG{%R%#A9fW4qMO->`mCo8pbKK)FrawCg`-IZ3Q|YvmxjQ!Y&h0SfkVdgf-&CK zsA;C2!iJB*Xaq?uf$%4YTMTgc&y>~H8|fkeO6Pr(GaDEURWh?hrR{~=RV@3wSjgFn z6%Wn6EA@l*d^mU-iP9Ss!Crs}&Ws#;gZf9~&#wh|SndS|9}L=(TWpCeL-;riE`Uv& z0xd^!yW2mk-3sYZEPoKfC{POi{Soqq8*Om@k5nOzM-sRys=jIqYEdiXixps%a5Sap z6_IOc=>&w2?ZH6q3OvzyFCVf9VQxGV?bPY{ldND^*oDENGWa!r9S64b#cvZ1X&TYN zJe4Lbhwg&y$z@RL+E!mG;tkI@PXJcDnaLCDwj5y^0WP3Ae0~PwH%zF{{EWx#TmFsI zdS88St&Uy$KsBf^aJrkMpaGL$Sx87HGY{IEZ0gvZ5@ML5fWE=E$bKZ$pYYr2rJVkTO;n zwUBwFVt8BUlYSv9r9m}FgV96#KX!-r6S*FiCOZQRYwDm+kK~HC)9J%Gi3khX zMae4i>ES_9X7|1ieszmTRN54f*& zy)S=kPZOTa(D`tksNwxpW(L&#tD@VTzm6}jYUq|}`$td6dY21j_=Pmz@0fI%_lRtv zKBTUG_~Kr*BYm^$?&Fs~*j`-hTyrgBI`=Ez__i(7YB}wRZ=v?@#P?tQsNK{dcm7oR zYe%drDe>dN5dOEFWRJMopk4pfq}5Iet%wHlJ+?+>>FnLrk$XzqETSn~aJqj18JC;TVJF8luyy2u_a&G*n2SBkMX zMjMS7j6NI+=xAg*g5G}#`%NfeYR%z)3rXhTY1@_+VAf!exXsV0kKT^IY2R{SUIPCM z&s_h<^KN_5gz1JyWJIP-C+Y*dGNJ4*t^Dun%B~c&|M}tnGtpz2!K5J~zO1w;y*&J< zbPN9(10-og`(H%=PZD24kMkYD@h0Q(I&Ln%+Y?5h+04`%q`-DSHTVudI!4;~MkedZo!oL*gwwOx#%a z+VBF*GvnqNyE;T^u{0uk>X))!mFg*^D=$0iKWl-T*QqsmF%*QIvD|Hv?h-*?9@|_&F zgKMJM$vK*OWRt#cFs(`70vcbyr>upw)_wxW8!v1Z?c)0*5hjH0;y58&rzaDkOmx z?l5G4cWg^B9ccY(U^icm_shSALvd}5kU?De$WdB_NY^Bgo?8* z--ZfHV``Hvs%M4PFFwbEJQJv0t^L`gj+LYeX1%844Wfd_NgEDTB_~xC{@z zUlI!_*&~5ObH|#Ayl;NUDj*%tV)=%`Co}*6cn0yXX55>IB~wq9Ce5Xj^NL<6c{v9c zgCS~%ZbTQ@2^-k7So{Z+h$W${3TU}f{?1ccICSLdrdzmoNn*LqY9`Z1tyUJvNXkQ( zhOCG0s|c4Askr0dk8LB!y@3MT6DT@vtgXVx)RK-H!ZN8pn5BP;z2R}t{u$=^MUBz` zqH>K7akc3vqWXg5W3bZg zA*r0#Nmj&as$PD?)s5RiF*$s_{@uzRK-u7- z7$EN`rQiG4o={it)Yg_7d9=g)oGZbO$@fT4tBds{cLaN|&FMD3-^6VoS8>otdX3|P z(qFVa_y6d`;>_~vDoo-|M66tBaB7`AxAzm#2QXeOH)eaM zc9{xk?&_rZ4ZTu8qNiph$~aP~>LP!3!S3VQIJS{V2oe6X;bVL)kfL zjP4(rH_gS+GA4nhUNDq^DM?Hh$MWXLhO*m*NP3(=j?4HU#^cK#5kTo$f|XzO^;Z+B zc{hn7l{{z-=4P`a9I{9tuSN-*kFd1+pBM1^;003G(!Exb#N0%D!JjM{t?d_<&J{pI zK~K3Vc0ZZ-N-m4PGQalP7IL&3;2uYGFX2&Wm|WE(Wji=2oqhBG8w6+&e-JENF(Fzg zf)Rn$zld7vf%LhDM3YvKI=aDN?y%WkN^FO4rcGwAvK5 z9kPIhq22TJGmQUAwp!Gw>(0;WpY7#++n(njYSc9%M&JG^gK($i3FCR^J#;PH_4rTg zFm|Ab+j@CROB7cDxDSW^?X~#zm?eXs>B8DPX?Kx@dPkM&wFv0N;t27y;etQih**B_ ziws%EyeBQaFMvX%w4|N0k3dnEU0OKu(?F3ewkC6;#VozX9cmTC3mK!i;j%`kg++ic zx+}oBD4K`{vA~aw%L)EgLX%qz(c8pk!ZVzF_G|HN zu;Admm@5!49??S~&$5J~G4oMVwBhI(cQkG>a2r-xv(U(yBEX)jDcA+De0Bdt;!Y)sl^gVOdpmBXCHj{1 zmdTfzzc#y7cwc^L`ByOM&whY~zfV&>4(?kfiIrdCamrawQfC`|v45sutp&2RyLWg;SLW7p$^2uZ$>1$kdWC z9}qzDUclr=f)p*G-P%q^=;_uOVpwz)o> za9AtNm5&j)Vr-Sb5nVsq{rq?%$wQQ}0zW|n5pr@L4cwu20)l_?L){yM{iGm%JG!5G zuW??LTXRp%(`PeYWwi6SDAUh2{n=k@f4lR zj`pnqj5$dU&q;;#&4jZCK%F_W*SN`3*HfJ^e1=n8C){-5H^mD?hm_JK`>fBuH8r}0KDlynL+{@);~7OD8Zi)T7xo_kjD9U zu>z-@p`-*Fv!SL=BQiYCKja7pa9T^ZqHg3)z zu!lz0p_i$5KGjg=g*-ojqpM<*_T9yKi^s_uDqb%YE>N#wL6XQ$b`b=aiWv-Rj>i3Z z)Yyz98!eoEHpU!$%Z?-uwrKtP#DxTqqnu8`kPot9en>EfMPzh*wXLtGnCn4ie+=1v z-h|77BI%ZIlN4N$by+(dQyAQTnIm@wWEYhj2rNrSIz(@@M21T-?4&OFO!4tF?BPn> z{dJW8Yp$#A4;7M8q092WewaKM!JnP;4YHtFj}$yHzRNH8eE zjyQK>@{sI^81H#Vc0--Qrcll;S-xGNmQ?w0{k%0!ryVSz+@X_Rk<}QXU02QrSY7FM zjv8I8b!^D0wfAM!csW_^rSWWbCvdJ5q=Wrd@^x#`d#%V5ZBvp4p<)Z-?V&mnB>xJY z*dUJRq30JW^vYOl`QczOMT&G3ysrS6mFO_6(9{g^nzF{xvRv&bTIx9AkZ;j&uhPU|j_Sduhj& zd?6L|xCxY8S3yQLOn`Td3r?{|Mivo9-CtxumbU=`tPU1^oD z`BA+I0$^W>R8Xu#uxJNMCC>6pp+E@QsIDrW`O#=_tLG;{#v+GCa2$;qQD79{A2$-2{;`8NawhYpLPmVS~7g~s&8 z57}yH7^&4B;LZUO!fVL#$0J47aQ~{rTe8MWd}i+VwUl|+7>TpbI<&ytH7wD^P?eGN zGQ(gh3pS-1TX+|#lT*O$pv}yHf^!lj7B`tSWV+n)E@hGvmGj^LjBO*$Ko!wN_ftgV z4-=Xook3I+=kM_db#elOh#u2wu~2qR5k`+7ar8V3Qw;kME0I6 zQWN@5vq_Pdhq#JFB6MR80zMRuIprGgyb+89NDsXMPNBE6Dbj$CkGLE>CPJXjyNeDh zn5BepicvQMc4Z4-1!TG*G;g}+uVG>eiT??xoH@357pR>qm}&q)@FZwCdHssc4~#9S zw&~k-vdI9i;Oc_gQ1W_nh?buh_`(dHJB}ac-O+9Hzbv%@!XDN0D=S~!Q%rHt#9j0# zMAtu6mhmYO01OysyOkW3^ExjA-VDSN{| z*4b&Y(3-pk1#FLb(hO1d;D=^l3@=|p(mT$ z@qd)UaFkwuIcJ$};jL%q(f94zcPb24Hh42zMv7JScaK6T!P{6uEAc_O{n7wcmWu)fl4W*z;X!-}1l`eJ)@&^tsyNl&sZ*6N76A#Wpt zUAIu{1q8e>jgazL{O=s>8zkDoN89F@0E3Qzuo*t_pQ8XCa)IH0%p+ibHzzG9Cr~L2 z9=Giz8|K?$5_xM~@&5X9vHQCu4+yIAze06jA|&m98a`mmGdNsZQW=aR9FlJEyYBGO zW&-jTxaU18&=`RHOFn830w7-lg9)6V50sfMux|K6MY8$fDTL5TNg>AY@l|Gk|zVza(2A?CF*oDMlEmyg1OD%%wZ|e5xu?UY) z^YDvR`x>H^tkWG&)<(x!-FC5;)}WZ+V~Hgx>j=cl)SF)gtA9#AaI0xYp_W+z$&RgrR^-INJa%{rz z=5J|kudpwI$WE(DxNZPYDWx;NRUZgEci~%prvAK^5e-qQ3qltiMo*lVzeR*IS6pvx zU1E*T3ZWP&X-Eu-&{t_SzgncfYO* zDdk5ve{J!zt2(|ar!0-GWJ4`f8geSwW}Z|{r%b97^s*{FtuV%za{aDMCHQ;?8mF5k z3j-ZI+#L%;CV#vTmh&vynAJ4oDIc{qv4!Of5oZ4I=MR89;+gknKv?c9dPG0gf-~mhSb?D8HSy|c}wjd9`{H-w^GxdXYcwg znU=y|adpAK0Xv!?RyjKwsep9ENh38-Mftxv8b5J>xY^4XEG=g0K)Gr7w6xUdW91AR zy>v4th!McX&dj2@c>09|i^_}^*9|MIb3{vhk^Wvg{tB+j<=I+uaUQ|=7P@1;Z)cN* zb#8-Q`bymh@~(8p3SDzaQxNvrI#aZGHM`gXa`oH}wq z8T4%S$nhAq6*EL@jd`CeZJ|fjiCd4=4-oZ~96vzVK$eSMNs+CQH_NU>T?NXVV~%4n zBAEZ=zUf>3v1GPs=`LKg1XZy~biuujAdWuJ#Ami@}I3ntCw9;xwZOzJ3uNk`nPM6=jQWzFK z=YZ7PUD!d|8tFXsrU71;V=i=BJa=nfGR(+Ja6*j>o|W?py6vtXCKD2IxG(l(@!0bV z+T|r>2}mLX`U8xM<-h(LTHyL93^rgq{;(dgXI4|qA!U#nP1^qF!p~n--((tpS(j;- zZ=kX0MzXy$qpXKJ3Peay7p5}$@R2i(|J#2^<9pHazuUf(tYfzgXk!z$s?{*ny6m1WC+WP!IGAns|0J0dt!6=T5 z!L0pezYbeCujFWyn>+&S^^5)*1G84A@X(h6KGj2BE=Z6;(^$&>8gC>#wG8o}yrjD5 zcsu$`oL=5N9X7kXrp>+!-N^1)G)HHBUBE8098@^3zkWW#qrNcR-$@LBZ0{0Z`zj3K zn-xFmz7U{p3}}sAO?b{712q4=zTTqTQZ>%rJM=~-BD+t^Si)T1)zpBgu2!mj zg^kF9t1k3w^(Y?l;pb<^RYG;TniByPL`IG}LD%kT%L@CL49-o+0eqpsN4=zli7Fex zOl-=a_wk@ZTC2@-7F~N)=dW)kYM5bCaazxqEjYr6lmd=Nf?VcM;7X$%-ZhdTR6gP3 z{c%95B1%mn^1t{skXLLFr%xkuq4_l;Brew}+zIF*imL~cD**&-7}ccr9IEG1tUpF| zi#VGy?b`S`e=Hfi04zqOM?W%ru2WWI{ikq~bNP4pc4B%!Ba)KGR$3x;jUOg(_fncr zKQHe%BKam2qryBsI8!g(UPny6PC2R-oZm9_db=E3SonC?u`a7*)1E26s08JBIZM3S z)l=f}<5V>^Ylx|2X!OQ;%z(=Mjf0_5h|6=~VX-oEo&$lJfD=D?ROSv)&-2G9bkp$g z{AyZKYuuPGPF9)#O0<(5k@!_jQlS6`(`O!fC5iWU2gExI=4QWWHUNEn*bY7d8n7{0 zhPnkCyqb0;Y9pq(+q8cZYhGO399cj0#Fp+0G!&JGaXDKL5<5>VvVq47*+^^U(nJ}{ z&`aJ(_b-)mUf? zBXyvt*r=VC9D3n7*f`Mn?f9`d*j~O5E@P2Z?o^BsziF;aTzUMPGY4_XnFXt>%ZSG{ zo^4qN(JPVTf{I8hXp#tB!D3Uu$je%F|}NG)Q6~OY?4;+Q?WU zqaWZ`0J9w;)Qa;>0c1hZXFa3S`3xi0nhxs?0Ew(aQP(X|Xl9S6cZ8}Hg^tLXmKvnk zTNyl6Rja!k(kt#zxvY;O;=t(gS?Q|3ktN4e9@l8N7@k_X=(o$kkTD9VY1JNZm}BLx z*fwQ8LAa%?E=@TmVm}lqse|3zyL>v4dWy950Lijf6i-?WjtXn(t3C|A3K(q}*Ulp| z#@rmu^zkPeEWgWMpVxWP)D8IEr1vuS5lgBHgdtb2-K1~sLkDPOcC|6#=!K}gFVezF zYHJ!S&hREh#`Y{1E*MmEneCOe!8ue9%t@$}I{4MFhIKJ2I&zYv1awJQn&)^8YT%_^ z0l^_|^5*To{Hq7?)r%fE9_CfTmsR&Q?^<;yxSMU^auU``Q&?))ZCCnAFk=L!TVl*0 zB{84)1AN0tHvRdm$;cx$n|PHH%*T}NmS8u3up&%LB-G>~XBi$)DG2|Y$!%ab#Wnyd z$We<>QauBmGt-DAM_||wI{K+%ce^w$1n3cg=RiEe--16G^jQvY|GVadAnA%!Gy4cA zlT8N2jPd!!4w?R#lW^eLXb9Dc*f2mDY^dy%d zqi44mjz$-TD^}A~MD_2j< z;7)TT$Lx=rE4|36Mwa+iEPNB@?2HTVnO(~E0clrC^p1u=V{M0NAIL%r)uIz8%sID1 zperKLaS(xz8oqyeOc#?pvG%s#CIH8r13kB|UIFT;Bh!1$>~ji>u((>Z@8LSfT+i^z zTX+RuB^HsRR9U;LfZAwq6jr-Dy5LYXJ#V~oQ(o+PkzdB*D}gONTgUA!MRvRFPx1Zy zopxDCiOu^(8*<9|Xyx?9Y=beG8P@4)RCCP5@2m;a<*5r0wF{kA7N;*c7eHP>7qfc? zEhFP2{5-SWftqUsZg(51HylDjK>Af;LoHp!W3<6Jd$(il*d_^(>_Vy!=}_NMQ9U&M zB7dovryOPly(*y7O+n#60{C92I?y^X@;C95dz!1CrPr3+6^R@S4{2S3epXVA*!*U8 zgzyc@X^Wc@$+>XPa_)jv3ZPW+k=L3-FbL9{(jITj%SMMU9E{&U=r=ZulN}C@vci)$ zjbgs{F|ikSaj3|_)paxeugcw>?qu3vtm6IcU4F774KD*dYun78&Kr!-aP2#{Hw4q z9jZTCVc3~qik7`(l%4Ue5^ zY7R~8UquikyVD7mQ+S8Y;2UODb`Usm;8{fauNJY^!q~|IJdqrt8wH(>B(XQ}!nf-l zr`r0EJX=x%F)XXM4iFHk!cFZzPst$LZd$bDxLjnBa;)Yx>8ZGovqL7^&U;3BN(Dj; zKQ;z)DJ8v5T&@|^N=FIs>qc~L-s?8+nr_&Zn&rSYbi7L*Yil{tR5L1iFL@>2%@x|! zAd;%o@ z!ncQBWr)(iBE}bDE54V+m{LF3EXo}I%EkX!vrKNpyKI&c4E_f)8s;1mJ%HcJJB^e< z8}+cGX_Ks@J)aVtEL(Zx|8gOp{>-%l_E1VsR+5MNsbC?Q+=R>8<+)6>D72qY5_MoN z@69}0n46Nz1USH%Tu%m=UltV^MX&Tn3PRPzB6H-@^%$CBG#M(LJp@3)3`rp5W)S!N zAg0!I|F(@asVv%=wXzsL%mWXK-dDodcG;>6qbAxlFv2O54u$_N<3vVJs7S6o2fee! z<1hICYPFA7Uh@Vp=q>e3f!a;+#$Us;(CB*S6jW$M@K{Go2k zq~hH)pXj^t*8xp>v^4u}vF&KFr|yjt#Eh9y6YLFmhu#S``ag9%C>PM_i;4~?)J%s7 zSjOW^x#O(;3J9y)tb4{r12JS9pBehMo!#NnwbdeB+y1o+l}a52W}lSYo!MbBYCGwL z;uu)p`|dms1OzO;JbZ76%aO~Ol*OUr8T0!9Z0|n}r-qG`b`1VYlKO&Qo-Y@cHT^xG z$9IMZhkJ}Dh0(^4_qWGSsQaKex3mDQWVgtSm5YZ6$n1)56GoY0x#CI4*ZuqD$ZQ)A zcySt=^YjLQOB-A?np9@RE@OOwQ@S~NN+*=5UOu@Lv|n?9nI2q7_Q2law;dab7M|_x z*BT{J@xnutfCVf1m2hGF#0o8hpSaXqipk}om=o=@mUQOw1^ZWn4UJVCGXY@3H()ej zi?8qXJx=!~uaF)-w)Vi1G5%_?${Vj?dc@^R3<|7@#6SOFl zmOOmOa~~AV(K$Q9NUemJgV5UfX&}D z(E-2k51G)x*M<9%ri*I3{3W2Bb*b%U3ziq>uAnZK<}?PCsk7nW4m8Do{*+WR1Lu z7T?t&adz#J66$fu2^}v{l!8VIp<%<`U&5C$Y8HWU@3tlcR{IbO@vgl<>|hb%aR<6t zu@&12^iAt|vmDm42+~SXWYv6d%K_Xs3g=29wO|aqvIY9Wc%SO zaS5hQhNfBD2f}ff>wwZYL*bSQG(>!6Q}GiVWq;kZ0*rOCmsK9f6?h2W1xGnaM6`a; zRWpb{aug1?p_#EHWA{&sBbW(Z??3DAL=eO=G9mnCj?sVA!fF0i2O@K)BI#Ld<|3t; zF2+|Ng~#aPQS=aSf|{+n(n7r14=Bk++POvl`@7ihgE_KA$N|`BF64wMG%J`d3o`d~ zBGyu<-Z@?P;{*&3r$7i8Uh_x^uU0QErH>)B-<(fWWoGLoZNIRxQth!WB_BbuU)*Y1 z0B<s;!_T9OlMB_n*Qbed_1 zzc1CUK$1k;Nd=&-oTn-&#^ss7aRvCEOG9l1iPynhh*Ibc3N?$<=J0Th&w;& zB}hIJJy$7H8{0PPnF>B`&Q}CdS#V$=WQ=%<`}$MV4iSLxW0noE;kU4Vp_(le5}VT4 zYn**D%^kc|g?n?m(L!9@a*kVyzSxYZFo@EW^L5<=ar9-Zn5#SmpPI^&++wcQ@3-mHz&`raG1NcO%)70NAfoTP~z=B6! z)7@YzGN(6e%2y4uJ#lNCpwTL`cfY;w4V>c6>*$7Dplbpvk+jedZ?qLb%+#LI(A)U# zfXOb;13o3igxiaQjAA=_;5foAF#1!8SHnEeh@kOOO)*uwyJn_r5cXB4&<{fc)#{hb zYBm98U{O(Sn$J*J>RKASk9N|f47{e~;rxC%TYh7Oamr>&*p>T-zuB$NiHI`?Z0gF$ zEb(OZh_lezQNL8J$17D6ZO!E`$K1O|O(k=aU&qihR(}sJ-+j&YQcBdtZj)KD79?7g z7c?3?A9gsxKnmBPWt zHUY)Ph#8J5m)~kCQk_&qSogVXg3kc%;ug+R6DTQpt615v_bAZ0@OeQ#>WHCq2bcpu z%=SR&`pg>U@qI2Gq#M^x*pn$F5c$Yi&Q~>B=dmmi2hTnxsk|+y3W%8U$HG!h!7L(G zQuXmM-4P4-Y8?59`SM_`6}j`Crz3tl6%g+uoQ4cFy#a|%ck1^4I$r!r3duNP*1DZ* zd}z)<^D7M(q`NPP<;(7aNMHC%Jo^WxYeL(nzrP?? z9L!s<2bQ&ojz_crxNj0=q@2S2)p4BY(f2Q8r<4D;4dkTBToAl&kTF3I?%UzwLicZH z6I%nLtkP+sZH(MKOf(H8rar%`^=8AM`H{$p0C3%ga1^es$BKJzcs>*jmhW1I}y3xMd7#Owmy*6r=zX^JEsFCk)YFov9kdi zxH&O_Hd`=^P|_;77D@F|QSP^$mUYY&VgJTSN#*lAZrji}ul*d4jdjGfSOCtIl7*@g9kgrMgq$ zpC^HL7c0F48NO86f^gzl_yje$U{m2BH8EY-ef{;h#>$pETd91qKF>Q#>DiSUL5az# zao5(X1iQcyTCDHA%qs|K6*Bn^4%Q!H@HIWB?bKriUtT1oe`=A$-qoCbr0d>ctwmXC zdEl;aYrb%$qAvyDuD>1uMi~nY!h81XvV&D1#kXc~f{1lswyA7d_8<0l1gyFm(mX-> zlCG>-y^7lAw<%BSZDSlC-*GZ;d$?iy-NreeArJghL~9 z`S#mZ-*VpV6X39pTuu5Z<)l+%e%jE|Z88J7`~>)Pu`{Y7O`QPP;$(E+HY{k!T&ot1 zNt@6R$QD`QIM>F+gF{a*cT%^L=MSU}?xVTtyR3^-?k>6aWSv!L{}>I~@K&-$Zo&tR zNKdo9n08U1yP&vfj>6Ykaf3um67i(5l0iZavG}@d8#E6R4x`S@iy~%?ZmK_Y>&d~f ze~|s0zYpO^qkIRHta@H;GbR*BZB{WFy1ab-?4MrBRdNDVXWq;puA{($T7$IqalG=z zVu!X(X6^}R6c5obg9c~l=#VF_Bo+jxYA08129La54`wZ*f05@{mMi^0p@bS8?;>{S zpO2)4(jB)2ftL6qR*Sw=K}UJi=wk{D99$JyXNvvc`PcxA?T8mMj!PSA4pHfSD?5xr zdP1Ebk&C`t5|ogNs%IHn#d#|#3NJZN{2g)dRz3YE5BAUa^?&bIVre=U-g!QZoBw!Nri>V<0ox}4((qZ z+vX~W9wr{Z5%&JtQh^2@VfEW@XGtY%L=P)2tVw(Amyi7kp)O!7!UK_AJ608xgT>s^ z(w)xgb+kTXwBGNn^as||{JoDXn33F3F_lDgom)WOJ`p*A&DwUoZ>J4(v4^C2`#U^i zy{O`k;0YK8|K5TMagkpcvJW{)%MCX?+hL4r+1a9}?5OOCW!ML9TQ|7lhHhK83&4@2Zp7An2IoiGFt^$(|$$dsey zwaWKUm?X@pTQvED)IoP3RSgbE7!x1K&fPzL5=>bubl$LQ z>ASs3gks=v%J;WfX!(AXDDs*0i=AWjuIm9pcFmIKo7(Ia^C;JmmvR&wR27QeL>C`< z$L1>rbeW?&5OwGDG>k{emS7c2o@^3O@IC_k;p<3f@fD2s2de_PZWp%lyu}|0!ZR3W zAX+`o3VpIj0f7Ws#Qa%bREFCL>Mvc?-wdZp#+l#^hazj_+1AGMG22BpCj*)uNQxDc z46g{H_``%GK8yO8y^S~F5}V!Nhrs19{T%am{6}Nj%VF=(4kv*K*?0A2rG_YhXAKTG zLgQ~7sWD`|An!7E9}Jv$LtO`vyVY_NROzsse+nOTUJoy{4*@?)NziCSR)!j-R1)W~ zvA0LZ_1gJl%kSJFSXxZdfuEeO`!`_?TT%S*))=vvrofm-@M5=j*h7k_Yuk8vUgIrz zkmncR=wo)c&;#7MmlAqVHfgBR<%b1ynaAV|NBUuDiGEra1ebtUCz+#|$O2mE8?q+ z$nj~ays6Ogt3r-KPzX*U#6?%^CuR|9@C+yt&Pr-O5>NnNsDS;%>LkP9J? zi>g^a`hrg3;LmluUus*&eU&F0RhPQVFNR)@G)8mYlML~OvaY+OBF$I;xY|E++-r)a zz@bZ$qr48W#`CVi^j(hZ2J~YAcW`?#12R z-6_ExiU)U>0>vrr?heJ>-R0xn_q+d`%w(_G$(hN_S=sA(o?i*Ca_C-+uSj*`uy$Z3 z9Lty9*^h1Ec&uh2}`=GFxan4X@lTJA&obLr%AEYEtdQZ_ITX$~(uC3NMpvvvlgyt9LB9=4`MaDE5F(2meC43R zBOVi9V(fcpiflUqwq{lkU@PGN1?(kL_eFXbO_kOY#p~uyG`+FB9iI^(7v+<|nAk~% z)4Ah8=I7cL=(oJRy*(J>^sYeu|2Zcsh{Oqs2AmBP*pG+>63!=wY8F0#y@y4}|Ev7` ze7z5RWe#8czh0{wpNpZoQdwkwXlM@j*{Wdn|F>fMFX5{B{Smec9-$>_ z^jB`~2V&Lv+n@ige;tI8G_ie|s<^p8%BWw_2SiW+dU%9>&=3Fjj~k)vR2|R%)%6q* z(11>Tp>Tj5x_pjjZKxMhHOp>-1LoXpeh`s?Rp;o$jem)yL2A#R_F)AE1hS+Q=N+MS z4;MF?-@3e&8~ooM^NE0;`9n*GkH3UIS+7ym-Hyh0UxkDMgrdG#)?495j^C{vv_bM5|ApTONJm_826$mI^XrL2gHy_(u`($# zKHFbKLSya!`e{^UXX4iGOXp&_u%%wcUp*Z z;Q$JLdI`#VXqCcR{7TGy>OPt>)veOR6DCFA-SOdCztu`Y!H`h3zM)%ThpCvXaU-aL zRU}d4#BG8WLVACxiyPVhd*GUU=&WkMKI*MI?E5-5MTRLOg{c=$>%;4Ydf7-?h2WaY zQ<|Ot=hkj)Ci2xwjt|U|T-at~4Q^h0!2@Z^_P&{7@MuX`ZU`)GC8)L;2;g%%b^aO) zA<%z70?CCaFxGs&tbMh^>SEt?kKJ=tl7iE}4gMBLrVf~TOG?YKVwU>gv<-AEi*11M z?Gu}Yu=Lq2dLpO2wovruQv_4N$kO6RaTqojLRC9#H$kX8MA(kv*S&I&;=fv zY>!LAM2KiR(8wm?0gP6GgvpT)CU3z@a4Or3%3*uW+Y|8KVA=}AOcZXE5Dlr;P34w4Bq;v|kuhjFDLO8e&YEa3w|Nr6i(25(sY-$86YNML9# z(&8h^hOwgYW@61S5*tpKDSHVt=YUiWf6E0HYR@DJPHnARB9@Jk5g$wt(JH^CxM|RM zdb#2q(`NkBPrJ7skKm#O3F8F84BcJXVPDmKOY+hCt=4Y5j+fr1EHv3qxDU@k4PO#J zE!|qqbhj#3jK_mLL${@&P<2wRr%@@pGkduCCAHI5;CK$fj~F?y<30|v7PCR@5^mS_ zA(u5g<)KKz#;UMdfhN8`9>;kM)#u09wE&QjGLI=b6NH+-Ykl83)L&OsYK9b6zjy8uMo?zd>y6A4vmO|PoP%Q_YJmdiECDrrC0J50imJ; zuz<=YX<^$Nm0;wW)p8?0U~>tBy^M-l=zzc25(o|HZIlNCf>tLjWdGG|*80UER);s) zszV;y-JTtxCal;}$o9EK^sh5%Hrg#|9M2QNiNun@*N(2bEUb0?f_5fkhr-8FSLTG@ z9BJb;3rdmh*bVgL*HeSZ9cl9pM&#m~nFfv&Wd=~7*kXv4iQUN#JLy7h$c)bmtI|&v z;faWI+g;(6;!1>ZX~{aAQ4rJE?*{v#6kB_g5cvl2yK*EJ9*8WVe!t_i{dzn9b%KuCqK)Sp1flD6+ui|gU5~hpe_Sc^@>%e+Pjef7w z2~VP?b>guxL~sh`;vXtq*PSnCHk-C1?X!O+2_-hBMEj<8k^)<}ueBuub2xAwRowEY zM?t!`B{v7XCkZ3DKw#~2m9sVS3!llno;Sq{W=WDdDxH9#_XX>I%U#rkLmZv5f4C?e zc@}*G{)@X}oi!5WMRC#Fd4%}ZRj3dn$sZL;8qLw4=Ato*BtSKpBmOqRIqlY$aS~C% z964+rf~t-#AJ%>rA?l>oHEtlTXWs%+V6(pkPhHo**nB#E8T)B<&$!$nt-$1FZ}+?t z!z1?@n=XqWQ+ek^eg4t|p2#Wu&&%pUJKL({R`+OxUzhaxGAqn>#O}|ls9f>nnwLWM z1Tf=M`v|P&)%?|-o3CO@kxgrvf8-{uS(K`Kn3C8WVT)&XsZ0(Kbzp&b-}8862HlQ2 ze!B-sd68|0y)Ud7DB8@$e|uhtnFz)uqWJq1NAl|R;<2o{yG)irc798ov@)mIox%tt0Z!9WCfj8JW3vhH$i!5yQ95Dno!C_RAR$n>)zEUu7 zJ+f}|>{+6gZl{UoWqJ}F7x6!C#gtOtdKNJf4nEkO`)#ujs!YPHvM#108H(i_36Cfo zIQL9l>0+phW2yShO%{jBq(KADSHBDlo3kfWqs)%MIs^{cFf|C+P(Y>Tg8VHoiCeGD zy)T)~?yvB$xb=Di33S}vC^;L)$bj~^Lr#x#u4QW%dL{qw7lnUF7?$a- z7GobDYjf?Kgl9D@I_oR&gVNn1wq z&OM%vNnjr*n>v17E3KDX*oa77Hu(aa2SEx~*Pk0CIZdPU+vlqryCVwu8%$e*Pr9xw z&S~QP;5a8)VtrOA{QUB94GcXg0QJN&|3{a~4w^ywidND_$Hw{!Q{wwY&V@AjsCj3; z+xrR?1MSX3g%y8FsCw5xA0s;u(D@g`VSqEAgqjah_76lrYP{KivdbJ)Dr}g=`~-|2mo> z(UUlu^zOpKMZ##(q*Iy_1%u~qn{x$Tj+yqJn7G4&$U$!rN_ti=A^e|p4<{&U+^<2N zEkrt@tT-->>YY=oH&Zosr^AW8Pk;NP{dhlgpO&20TkPT$dL+g9GkMUOa@q}klDLYp z;uwx*sq|(6dA2uld5WPTb)N*&d*X7dpCmXTclC?MoZk{TNI;xc(6wS;f9kCOfS{T4 z;Acwo(NY{T6+W|S4kHmcEJvh#JSl1CNYlLzp%8)a--woXDOUpkUh3~BX931!8oZu^ zwPcG7;niR#vBqC8PW1V2Vzqle{CbCfHmt%12J>SAHEw`?-&5od5kmLnjZ<;8n~&mD zgYRW<8)GcFFS01b`#vf(75vllrW?IsR{Ilga>(BVbBoi7C%pnh71>0(g?~mUNyp>X zN(=W1-ICR4FZ=zb8(2bftuNYd9%W)n!>LfW9IKI|1XLV#$Qh1w@yhNrF#)=vXgVqd zHa?tzM{=Uff`3n(?&NC*Q!#i_WI-Ig;RNY1jTBfx)2b@1c-)^duu)iAC7Pl_0AZFZ z=cL4cayjVr=#`j%yTNei^&U8;^})UmFN&9$MUfl3){XrXWNUWT)U681iZ=kDdLndo z)m$5mX9w2uBP(1)-VTixJW^VAD3zX)nj%^ODW+N+{-~MwDSp6tN6Yt<*Z?5o?ivNG z5?JVL0h+^W;(f_QkXd}^mGXn3Ho-~%z+``g=!_azA^ro4sU_<|&i$p1yP6-!gL^?; zq0dW$=@m91I|QGAIRiCbLz$n5Mu}cLbEQP%+qi)1q%3zl!2+?{!dSj=cs=tCY3fK2 z7_O&C+PWb%%&~_gVsaQ@W5z5-zvN0`JGmA20ACFSum*rwz3ldqi=ySB#W=CXk{Y!v z?ngSOzXN@lb?_t*!`hf=c-30()KsFOkR(23VUdFW>Zp)Gkw6ep zU{vCfaL<1$&)Jv6S^l0XH_f06kJ?Halgv##L2v*TsgIjQy??^T3_Spv%0)Fq`IXC zt=|^7|27iDk3ZIGAF`hqfz^2kY|ZSsbH~N|a!AJBom-N=@IGQFykzqbj&%^kP#9OO z4Xutc)3bn-S4#xpmDytibvq5__OZGUCs9D)6!wgEY_B-0^vz8>u7fK{EJz(9MZ4Ok zw49H%sT0uUi5^7H6Rdr<>vskF_o2yHQ$|T_Stqf+-b|UCmd)lN`7^#i$07{oqtI$G zx!e42AX~8Vj36mrKbg0oqL?`xL)j~ra&~LMS zvJ0<3gfOzs<$Pm|h92TMh~oJVpG}fsugE&119TVF+H)6{U(Jl zk4`T3Xce*FZG-9@?{<5DvwoSaHoA0~{oG&RcS=pU)?eM^LQ^cGujJ3dY<_A!{FK>Z z*chr;kbo@kH$bwULT!DT6XekkIhQ87$O!GUu_rjghd{dcr9_=bmb$b1isnuFCTdp; ztkXLKh5l6$%{>HD){-LkUo|b;M$;;lO!1<}*Ka2xQ<00=;Oqy$Jc<}tU^~|%9iv3Y zP1GlwB}aTJds2j@t?`g*BydqXk%_zv zuLD*g1(iwzuZ)H-R<^`}#du{>v(6Wum{<*8zz0SCcb>{=!VCrHZp&-0><2Wb>mOU| z^~=1&QI~rQf<%s?bOH8ElYsrAGea-jN^*9GmxE~5 z#uGS&_-K8g)cr^9BIM;}5hePcjTUTT5*+xH?HVxh5$O5Bfhmjcx%9sAD@yYBV+s!y z8|-j=P+U@CnT=@6Y1PEo1z95H)4e|={rgRn;YEY>+7mYpq!2Yc#vIIS%Fo=OTmv7cuz%-U8srs-S;Bl!RH4?aOj5 z`@OO`jj1%lYYn$&6)ZZ}Qt`8?k_aI<)~+MtERUM1Apc&@=cqMTi&@8~F5W|BTz$lqsp7N-`a z8CLlcI4fY3u*8tbn?ryL0V%Y)1DInr8X?@(afD4won~XrdOTPStK@~QHDMhf zrYAOn6n}6C=A$DqVs2Pur`q-rV=4`|%bNW+vUWs7TOu2Hk`{!NXKdm}t$jALL ze61BTA*8WK{-HCa&dkE)%{RiccP_w;dFT{I`dNWAm z5*7oJ^UHzV13;q&{g=~5kpy;!b6!;o#~)08bAeUK zr$*_Q*a16kzWh=qRiqrneot04BzFO^kppjcE(VD)sKZ26s4W=P*ggt>$X6%O$lOR4 zsIB0qBqPT5&kycvQS08(MaqtAT2ZUJkxEqzgsPAu%~(oHju*%N?ypk=I-2h!>yuNKj6aqhJ z3F(+Q^_UGS_)x+ks3Fz77D~++Z+2;P^@a*2Tp_$*!#*E&1+-dko0x7DidT-O$cmm- z=1RplFm_&Vh!$&STCBX^8A@U1hhSX2jne7=^uiGLj79IeN-UyGcnN-XMTEn{FUOJVWy4 zROJ~N(K0g!v}vH_1S%?Wu~{w|CT)s7MBERtJ6osG(eIWp_!^9U_dC$~T}7J$iF7+J z9QvO(r;f1Px|nG)EmgF&{%<$ikR8RDnT|2v3R8OF4|W|d1vgY}yXW=PDSLF&pgS6l z!SU&c?R*A&o#%pKm)?lKq2Aqy{rb7*c6ku?+wfP><-2XW|NTws@6D>NjnC#( zt}jsA;8%><&ZAV7?fdmdy(M{eLx%yd^Y!NV{pB{fd$lq5KcKdY@V_UPFae`0C4}#zho2iUQaK8s5$m3J z?KyjzvbzPkTDks87hAh#7&p?G4556T{;uKiy&)MXbP-<&x;(X3R8lDPI*x9V$6;W5 z``VXxch)#7oVlqkjwjqB5GSSOmuN36M(;2>yq1%LF^gflr$3k6T)ODt?QuyM?6EFF$E$>?MLB3mU zseW%WuZ(Uuxqag<+^*l-L4&TF`qS1n4Q1J{&m>WwpV8&h^|$oNe2wJDDJN6=r@ zw;rjYgHMa7x}!9>0ZEz=f>o$~=Lg?FJ^~HWJs`U8p|Ag#nm4i?NoG$y4!-93iKacq zecur6yO`$4Jf)94Cou9eTr^|cGQ6~8wc8TBkPT%Av z-uT<^*txdK$Gtw47lm#SyZhhTH&E~ok>GHHM02kYuLIa32Bt-n!}7{NcTw5xLR)6~ zHqM{L#RJ?B67r_X^u=o|)Uw|sz6bR(KEHboAE;6(mykrVUO#$^YWoNZ5~@-~mXOG> zAJ28{0^h1X@}TIlp)$kBm(_B$S5g#%Qb+(Avl6xw)`tEc&@Z~Io&PtKn2uAV1xcs@ zaGF<00eEnT%_35RH@mxIpJ0OGA0X6iv9J7$FMehO9Bs1z17HpTQGz~nlu1bNoyb&}>h`p;}qcxkIZ^-(sJ9z(FN418g1?K^wrV?O-_yPc! zP`HqBTp+ao03Gms%u%qRi-sns2>A8*c`Z1?_EzQkkD=93(I$U-qx19h;m}dVhJvDP zsmt$^ED)~)5zfF%U%2z_{tzK(jaYi#Oy+#QS*Ur$ih-Q$_7Y*o2){qiNidmN$bDFg z3a3ApwLj;m9Sug5f;WD)_f&IUICp;S4fJs9cn7D_3ncpp+MK0&%fo&zAhOR7eh{Up zXSgSn?BO;}*^l8JMo`$Z zOM1URyA!>aQ>)b)IiMwS9bigh-^8x@`tkO!?9G#XyP2~KV?97LqEQ$Fq)yp!xU@_2 zE-}gH$A@9y9cSRiJv76IkvI6(?#=@S7KkQ?HMe%M@^r(El>DnJx;)ZKzDgk$I2=IaQ%V8u4*vm?angac3 zN+2y=LvJNS^kyqFfFc^!{RZX<>qy zXF`Dya5~NL9I5{b0QjvdQHR4DGQQ+a042zvDMoqxW|D7n;O)^GsHZa$&G^dllY&B& zM_N${yJK;)XCaJf{0d;G&r6J`=J-U{>`d@VNZn$O2bw1+Wrdwr3F~N1p)nbu(-l8l z%Om#ObXeS#cg)ng&|c5iYLS!O-cYxHjH84_Td>Q?RzPL7VbCb#74@*(lTr+*11%lG zq7J(@Ke9YrD zMD43wmmbzmOWP&g1Dy@5e7VIW5+GfysBAr7QYd1Yn5!@)9kjM_D~T z%(9C6ocjWlbDWAsL0-y2i7PGZ^A;i!6?FPOk@A5JNIP!QM(%wzJe#^NhnWY7m_8>O zyDTbj#57K-sb<}5wfyuBJWB9`FJNATz;-SwgTbWBv+wC zV9+>*2G|u`-C!4Z(V7TRr*slN*^pN^60x1fDBoeW;>20dewRcBrstQG9j>R`RP;0J z7_zhlLoedl)b{R#{7%vGt25=m+THd`aQ|UbZpBO5U_{fP=7x8%hR`&JGUsGhNU3N& zy3C*vm(dblZtRfJVwd3+xve5n3@t8!h4U906J~UtphDNo_6CeP-^cs`OS*KLb8i}7 z1<9T#t;My5mdEW4IFcx`B8z1C7KxzmGsIHu`El?QLV%fH>;%77PoV~OE)Xi|3aR*CqYy9C+IntKTw1e75;J2pW$X;9 zl_B0EUJUoPpgg9W0afkGc#4l^ZJ`i=ks+&N$txShBBCC)YsQzRa8B}_g@C-zxsx?( z!=RgBysQcCz=fHv&JMc%SWSA6SCz*0(PXf4j_$!@vV^LX@jQVg16X%zi0Ux(lPqA~iGk)Rfdll&vq_4+C{f+72AUEYJ()|* z2j#OQa*M=GH$-p}C%@Bwsp&jx5BNXkA0&F1Ct+-1fyr|-B$GqnJ$wIT5dujUW-T&( zo$cy;c$X0IPyIb|sbaLAy%5x$-<&_790y8nL&=160BR+9GkiDbhfR0Xrj?dAEarJN z*lZ=MUdgeYCex~V2|VJj?!ulJEzWciUAHs3zkS7C2sTSir8~RIxhgktMG{Wsp^C>( zgZ6R4fN+z9G;$}5b_1$Esm~idVWw0F%(OnfQOz>PRjJeD$9a?9m-1#%slvyF^m|QH zUdUw8DU?7+K@Rax!GQf=I7t+|J1gI$9q{M&Kd88f$ikijo3#_&$Lk21AC=DFd^ z-5GrF&M)JuFy?;Pw*G-KsotIqIG_yU=4bQb0xC)ubBECddzRC1q(_yaVU{~J&o?xi%UWza{D9S%4=<}_uxS!}WbuoSIn5X?nrWr4d{P5plUJ6Zz6m+kyx7`G zad#!nZIzSEfpl|04+Vyt&f+d6165NkpQZUle$wOI4mgpytjOc4Tm-figQfA4|Eim(cpF(IWpv3C)`N_P<1cYn zUhx@lb*I|OX^$1KJ*ZLt-dOIiBl%QDWP8o}a9Up>WZ%ciqLrm$RAQlBG@L$mFMvFB z7ANkMK7{EsHe+Bl3!(wUZq+C7Qy+p3OTYsV!|-xNQ5&?kOu@`}cna#?0UChy=;Kr{ zBUIGNSq>9VG`X4dEBsAapD;x67q>Duo2UMPfy67+AUDhRH$p&L6PGl){9lEE@s2ONg9Uu`yGE zW$k6m_dJ>hkGXqcH$B1~ea*Sc%kZbmez&3b-M|ylaB?pY$E;rc)@i>ECwLhqOkD{@ z3H1Q!mGxiI90%M`xb&C)5y4O$Fj*RXSp80wbr0R-uqK97tUl0PjN2aM6?gC_osC|1 z=$oD31vFk{c|s-Ly@O-T3r6C||}E!?Q{qgQYWygv(T$p59I`{v_) z3<#c+?zQ;eZW@A%8?>#+PYa4i=D`7-L<10k2cSA&!f?r7x+1_t&LsVN#caYx$M2sVl zYhoc>e&v4pzuiYK?lpSo*uv{%9xio#zOmJ88F@mVrofbGfW0&cAL~g0VMn9J>hpTeo5u&iFoQ7U!gtU2x-zck*aY=l7kpYh^=>zdS5n^mng1)E^=86Q$Q6dhMj z#e6}<7z8PjPYzw&5?n}@ON!p{H4jZ4^~25F)A-2u2zY_Na?MhP1!Gf`{ggpMVaF0g zDM_(kx)yfa;)tn?fp7&n_zrGhbn4GN+=>3cp0uz75iT*#KRO%@)qhD`*bjB#44@H^ zEn`TVX~Tai&hPF(Rq~u;CTx;HR0*T_*!V7#=XBEm%piMHBOLS4d5KKBUzGXQ)r#ZB~8f zMW0x$6Z$)kYeo{7+SGWIY#)@v$`CRj_Q!w*QzJ3Tei{=4*2gl(Wkig1h}|vi5oeTMaX$?x|1X z=41JWkaIVLrAlKL0#p+~neOPBj2{f7RqQ8d!qy1YLgrcp%9x5u2ej>If6A{~?@(pD zyMuDnU;1epq72ZkNC^^LR#_sHSz^j_i)sTqfCEjr!3oTvQ`X2wL%qucYN=g0w>if; z@-mMW0{h8Wn)?2kY!jltZWp*nG8EiP+}CduMsX(Y4695F+yU#rxlMHFdWw*DM9-{o z5j`$`GjO*9STYMeC1B+5iQF!GZq<3cq^5nq$S}I5tGKq_vgG!|o(+}^`BAC7(Yu{Y z1&e5L_S_f!RZkR5upX{=wzJ3O%98-bg{J*YLHFI~0$<#oG{q>of-wKjTRxM>$JGmN zj6e7wY>ll=GyFMl;5)4-@bm|+- zsed(z?t155>($yZ+p%B3Rdg?ORWjo)t5nX*{6Y7yj^18-`wd73MVhJf?=Pg7Eu;bph+;&9m~ZiMHf7PUJd zw#X%%aT`vMa7e9XF+I}YTv0Y$4iu8Utgus?7bNCpi94Yn-J@SB1NWwaVxTU_^6(f|Vum zf}Xcw?lW`I6@D}i( zVq}ka0iYymMijIA;$l-R5u@gdb0+@N7E<@(`Qrc)k`~GZ2YO_77R*WRE1tCOx|^_MV$X&F`+WwLpj(&`BcuNqwYnkC>8E^2;wOF3c|Ua zHLOZIU*V_vjpSEP1j#w|obd4V-HdKsrVn)d$dvW)WH5RcfRdm5RX;>5Azw}%uh!cz zpQ)>c1tspPa4qUB(kgTGJMr-+slv0sX0uCv?^a|qm+EZSmisz2hgNg1NY}{%&9ZOn zw8ZYuMSKD&rXX2#)PThs)N8 zB8c^|%5x|y_o5zSDKR*ve&j)}&f|{9uyse$n1w=b1g-(=u@`_uQrkAbGf zF&xU+?zu5VKbNam-AJzj)o+KLAY|^GJ}T}}{+cW1&>i6~l3gQRJvv&6?%hy+#g|$@ z$l=%P6=wn>c9A&LxX@89yNeZ&7RI3bet?yTu*UTcBnq(NJ$0Bj&7Ev)aTAhL9>q{FY{5*dc0#cR$^ zaWbl!O0H$C<*Co9cgXqxRqTz^zi~L+#jXUV73vSG5wDRW8!YF1b6DwATgk;G)^|>D zJdFsQVV$#*Sp+ptaE_y=NydM}O#Vc(jdgco4xO(^(A9!s_dSwtAHBP zG7xns*2@fmS>K`DVtpY%&maIH5a4O{kH>6(etebALR3#) z%*~fzgVzii^NwOIq1E-$dC5btib3d*#!A8GbgUzzG^o=#2*kJ&R%rV)F;}z_{4Zu+ zbCVQ&7OfU>^3*Xwm<}E4`3xOTv+YiO-+5i`9AC9tmcdI-kIMZ@;_&y}fOl$K>ltQU7--O+RPK!H-cP=8f^e z=bP)*IYdO-MoN6rLdQ2+PX~JTs^pO|(YHy8e>)jA59?pAXDfFT;CDj?aU9GG%bFo3 z%l0@GpyxDzEs%`LwS_{BiS3TDbx`LwWb-wt3tp6F3+t?8spRSDs}~`osvhhG9EegM z6!}-LQ@<@AhLM)_37l)bA_c~=Y-ArF?&1Kk5$=VMYyRdx@2C$ura9ncQMVqYF}nDi z2bDYjGDH*$+b!r4UZLZNot>^-Q?@Z93N8sb`OaJl>@;LpyrwfUq8}3S8j5g+Gc}4% z;e~YEQjyi#zOaLoPPdR{&$b9tvj(^2?|3wUsYXct(UCq|Muk|8Q=l?7=$=)=Wood6 ziD;{5M{}e`couD6j|!?pY8_L!rzQHSIV3qbjfW(~2iyS`SaWyy>wb$!zP|AMTdi8% z<*924q!u0ZDnn@5KfTWad{h7Po6@+5WT=iKqU&$KxXTBwj$U?AifMCsAdI_kTPJIf zp~$DL|}f56ym*nh&s^M@%DM<7_jZw#T zazUQZz%aT^{AjcMOeYz?@5zyx#Z;!OUNT-i0?rx|-+J-SgbiA5N#?YL7e0_Sp5w27 z%w4#8ADVh!KRSPsOMe^TFK7=m!@tYe96K?s8-4uptiYS$J^Y_%1!UazCF>8LV#Ea@ zzsUlce`W$25D=pwYbyO-uP=ZPP?aqI8?}5Tn9?-+lmXHZk(k;sD&HP%za~c%ndVpj zEBH@#DL5-A@Ddgav}FVX2OM{PL{TTbhnj`v{Z}MBg~lobGnewO;#W4y6b z3v`*NHE#tQyV=7_K#N%Uvi+hH$@)e3>1gM}QmUMEu{Xjl)4|{tqgcv!tQz4(Wj*}- zkfPn^m7;xZ-?3ZcMd+`D+)9A0j&ebqBD%9gc)FP|4JNZ({q3!;#yDCu-^hE!hkGvL z3fqW`C)yyi!tNsarovBr20N$v&g~4Eozk3luJ=Lug(*}H;C7GXqt?xcNYjgT8|Nn@ zYNDnCskl;I6S3RLfD}L(f6H+N_boO1_SX3R+0DFv%qVg7#aqXHM|D+@BrTVz8pEAO zswj*j)%{Df8W3~pzJP?gi{!vo+AEsL3nQj{2rA9O0u}U3I~@<`q0zJJ3>WPt-ak{jRJ>VRh($6vh&2g| zag?YJ99?5G7|h`(%-Ov$&0|u$sds*Bs{JBnhADlGuaTql7k&97v9&%roeI#so9x@Lk0de&0t$=SdaRTc@oKdkpvV!|Cl ze9H=%M47m;*OvxA2wStJ3w3l)$POCr#mZZeiSdL&z(T|-wqz~MnsZnp7_|vhl@%EYu8D1N^mI++EcN*uM7Ipi21~v22d>Jy;R)aOBj{gQwfP1j$R5i){g5x2Wxp%K9M~_=9*S6-dP)*vgR#a2XAAd+b zM)$O{sroVMq-cKa`Nv*Kwy$I8Noo&)8(?meU(tBh0?X@@>{Yi<6ukH{?R*up^z_;bvYwOT<(tkj{kRxN z_JB~n4Hcj*(HKA&O8z5ibH9;hqUT{!(Urw$$1Ea^-qPPQ3}y*E*iun`8HsR`S=3Af z#Kz_L{IoU0pq3&lG+0g;KJsKJ{9XeI8+v)~HE8Y#NLfouOvntd3n z{L{cc_d@|L$Q@7NujEg4xs$MJoBg2~U{SYoVa+#;FgQ1vcc}Ny?=ru@Tf5o9W4Frb z9y!XgmrDSuO*&7=CYkHtX9`S(oe|U4czjm^lA0oDL_;{|%R11q>20K|Y>iN($$^or zW3ybzsrMoilz6T_G?1frilSp(m;Q;2q#A0zQ3W;*1^2chWWPOa6x4ccVEk$*fhup6 zFi$cps9ag(|8{I}=}2{+tzE;EiL6sx=o+-W;=~hYX^K$J?&X9~@YMl?`;jfb?sEwmH-`rutvp zdE@wkRc`EW;j&UP99q0-d7ou&YTZM!-yr>6j<;-hG43p zc%~Fy5uPa$4r&~K`t*2rIjYPt0x&>-LHcDJoE!@dl{KNrsqj7xjwfCT;QE`_3Y8&4 zFi+Z@k5Zixe%jflv&Iog%I1t7fRFA6o?leaexeE zB*p2N6GC)1vd?KKeHCQIY5A?bzR~HT(SXa4lzbQfes(TsrX4^6T>6;A7=#qciVeoJ z5EPrahAe1pSqF4jkzRx#bCOyE}foBv)uXzn*@lHUO?{OHMd+s9=-QxSnM)u><--3{?xsWf3F?iNslZ>ry zweGRaqQ)wVkMsP(;wdb9b{zLxb{0Tz`DM94aB&%kQ|Ngoj98Tay{riDEHEuk zN{xkZb0$slCU0%JeRg_dn;jz#Zz0@W67e&C@;^1en6$iGzCyS;Ez5ppfm*hm#9!`` zF)v=0MJS<+NYwV7wm;bMaeg2Jm%8`kI&7)SVKzCKMJye>WQhS4FpZv75fHPa-|oS3 zW26vp79kk{8ep80f3_2Ef%u*8xqbZGPV=TJL;MZing<7^HkA`UBq zSf=fBbO>M*s{kr#t`d{vcbRW+A)L!M&b6wD~k)Z9;z&q_za^&`+DXY0hQq^bQ zN5oDDRS`~n+1Nwo3ZO*vW_PV8tYZn5TSipo%& zB_Aw29{{{QSbm8`7E^n>TOUCcT&tIo_cIkjxRUXcq6h&r-VMM3Vq0&6b0x<0%IO++ zIHY7E*X*KHK6r>p(QN}fe*dLFACT|Pz2?OhU4>P%SQI(%ZimsE&JfDfsYlUK?qjmH z%tNbRa`mwcR;O0Idf$?uqR-5g&TD-=tL=5^dd;cd4N%Iqr}@DdJwj%O zA}+^P823=uz%I&TG>=6bEX^-DDqpdJY2uLN{^t<282EOX>PCo(JOVzrXx&=xV@OLA zhfDzmSDg<^=mC%cMLyVVhT(r;pT`<`3SLORTq2N6!c{4zGGvCo zd73oXAxnw!y&pg$*M;{2| zVDOA5Ol&iI#Cb`7-fC~)jyD%G({fD0nd|>O&6kvb$9hQq)J`xi-St=+#`aUo;^33~ z_eK4INZVTo+u56e9x@8^_H0YMc|)uYQ*n$znBywvzblqJeK|u(_ndubQ`t z{2Gy|TK(wh2x^)0Jc0>kW79)HB_T*2bnU-}EU>o;CMmPfUk=8q3%f1ctl zHMgBm70|BMiE%Xf>Wx(|-s|SDY>=S1nxE=3W0;`ggg9Ti#-W}0JOUrh0k8tmu6;Kw z+M3J)v0Iixl`JEbJOQO=KI$g}=I}PhaI$`HW~uk@!UN5TnW9dD35Qbnz^`~l2B8Of zkt^n_c!q$08A^}c$5lBJ`sH5t!J48BCB0lh^1nxB397L-83TZA*6-lv8oV(t1SPNU zWetb{i?i1UcJQC~F?SFx(>A6U@2HP8CB=xOSf&`-gz+w+lM>ye4nfYeZwE9Mg8TAO zYu^-tWZBBVS5elTA@DPPckf{KR5le*;31z6;*XA)fLydmw(|<1M`h zS+Gk_Hk$O?%y>KBd^h`X(}3@qOG|huFD{4l`~^{DLuzIQEt}1|x6js-&tkc*Khuon zyv7MJMhL1IfF}S7A73JB%@Im$aO8%bkvdR-yzHe@#}3E5D%l;G&r)khxyJe(*UwuA z|Ejh;`@DpG=&iN!+xYXm$!ip~pTZQFQ+93fwnRf!K`$d;L1C)MQ5i)BCCWkSmJU&~ za@Fr%QRwfCVZKO}H@BXu_#vBF~tVfAz3W zS;ns=aqE7{7xrgBcQw{EWROkc#$6L&vwPD(9oVle7rM>wXK3L2t?$^ECDeK4Rl(2Q+^x;EP^{>? zlch??m%g1~wqBy&0K2~qrNYfgDqCmvvfC*?&F**ckO|f=@uLMJ5+dy1SCG~UKaSY~ zP%tspBW|?}kt^^(*2D1Rz(h=XajU_?>h3wzE8!;F8i&IfZgjDej7dkZqLn$b8^usU z3dBMm%v;W_XinR)Y1p^(03Y7lCKY+?LB$N9GQ>zj=4%NIg#D4$L$TrONr+y@9#8Ey z7&(d3pFR_|4a}2jXU^NfJ zt3fvu089`|88kfzl@tl5`Emq40Rd1Ic>DT!AS85e19EaD|5s(p%?e@_CZPlAEpy;B zZ!f@4BO>zXBE3F-%zuH=Y<>gnLJR&&(B%e^%`wq6KkdS2AtB@e#{Umjf?}S-0t!sQ z`cH{5A`xBl<`w)aA|iBc!R^6%_!szfCOimS0umEsJSffp&Yl_#j@``j0gr}+c;O@R zuW{eM?$3^wb)Z=ir2l;)KMjcKfxd6+CF7t!&UriEgg!qecOd;(aZC$jlfS9( zncKF!KW`sAZ8uQAZK7|PK7US=eDxgXUBxyT;5i&v-W9uf4m13tr^y=!caKL-0IAGW zsnbKjP#SVQ6P7MN-V6m^wu@;F?XcyQu2S8hDdDic%e>x?1_eHzQT}1@y`I?Hln36` zvw`zRJ+H(1Pi~NJ9;7lZB+%P43&pqrS5sKcQ(~pLWn2~`bwBZO>zgr=+hp?-3K=Ok zOIMfmWB3R#q1kzJuLD6jn!FSEz@x7h7w_!P5{{V0TF2C4f<#Smt-W=FZYP0VJ})gT zsI9`zeSu?6v+SVdh+diwYD$Tl@;&Kho%LzI;TRDK3|+vRt(rPDHP30ZA$~Qft=KQE zj|;0$t457<`eMJQ21y1I=}7M(k*L6KrLaln&&!uGccRx*QbAgqKAG@uz$VGW5jIb> zn2!|^-*NJimlxUdYu>lTNsvX+b%^)YVf~z-9G+w+Qj>jB(r=}fOqa2+Oz05&SW>e9 zKPb5|aC~eKMAR|w6fRjBh$8C86P9URC;>E2oqUY_<51J0i?nber>hc-`-n{H%azb- zBu;0d=2UKP8+0Q*L=&VNkf+?Jp3oKIWP~AH>U(~pU@o*fj5mAA7EDiUjnCbZy3CuA zk+G@jmXwU^gpb`LJr#Oz9QT!p5HB6*V>vu+WlX;2=@_^Qa5(;#59644Q)*Bt(r|Qe zyjObcVnm01NiLb$okVJNtAubx^=@%x&8qHEiXaGIV!9D0MVymZm{kkt#d4gj58`*>95LPeOd;XsNJ!uMnWJZ&%15_86CVt=3PFfZN%n+xBLXnIWG(k@;mhOv} zT~AoKWjdFjE2(ZKJm+P_li4=CigLl706zVZ+RJamN~wC#ru`;6^m_?X-4$1Z^;`#~ zAm1`G{qkyTpS0LcGUkU2OHm!8WNr<5_%#(@yT(A;&Y(n|pRANMuAUzFx3L5*P^6V% zM=K2ZP;QwS5O=^LLI_`G1&*&NV3cA}FV6R6u~v|@wVA0|@>s zUY`rE);>FezdU|JpTf%!?+iw0D%^y-Kt@g_K`37us4EKNBA&2hW7{jkmbv4RVOD*} z*)M#(lEzhQ5_y;13;^&2VX=sBl@3U6Sql)Ycq+gYlG&rWDryL^Vg(dr$(@?QB%`_s zfWH0oG(*b4w})o8w}5{0rBMC`=pwRE1S0@Zt`m$~f$t}sk=womK@#K9!C@Sm4^u2XwJC%gi%> z4oH<_rydwawxmMyvni%cDQqP+I5j1?oBBr*$mWU~b+aaM1i~a{%v%Eb9jjvq{W@xZ z$1P8NGxLC`pf0cMdaZ61+OMi9^~kBzP+4U@DgP1CVkBlpm~Ao79)L;T}( za6md#_k%dd8o>j0Y4Mydq1Nr$I@y*a)cPDRnh$nALeJYVhR~s(g^+uQg?RUs6q%+- z&D3GfF_e+g8O}4H$S&0bwVZonY~ddy`G){9p&^%zZ{O2*cRmu5UuD(+D!jJGlJkC& z>%cffDCk24_l$u`v+Y39m;*!)^Hyr%cf;me>4-{av2gncZXzDvtAoDSGl(GBALw~9 z*k`;s4rl~Rb@z#mg-zc!4bgwd;`=F~7}=hgpS1DPxo07DIaFvCYd5ng7(X!r#ssx7xf=Lt1zaL2g2nZ~d81Q>AOp%}g2_Ym&^zH&$-w*qG?wem}nTnG_KE6@bTjSSsx%U}0j4Y6Q2{ z2T?4RnM2#G#r-i-DD!AHs&5oM=WkbtuejP`z@JLk^bfd@vr~`-)?n9wVc{J(Or9E7 zF}%2m0b(}0TEKmdz?4jZM@5MeVf_MYw#J0Pk+U>^vRa(D(n=b=0I%T$?$&av3i~dq z@JaeEgvUFJzKUkCBdvY4rXG<)*C;Y2eX$HUhdYf0!ei;i55V3=a#1}3hwSTYq@DP- zR~+J&IqaZhb$(TZJ*#QhiR>d(6EUs&4`T!~*s+Vo zswjzfp++bDp7tbPNZ8QaV!7(vFi4xruaLS{6C}W-fUP1%L)XPAAoQZv0@rJ`yc)eu zu8@MQ^qOVzO1Z!T(q=iJFG6`=jPlY^gl7p0B0%gz=Z9An6ABBlG_O^q$K~bH`3*G= z7@~%*WEq<~<4K+^QiQ_)Dts-`oVZOMS^{dGqxbxx2%%>0QcU{GJXd zq%Laq89#DJpOBinw89H2{F0wo6AayZ(3WF!q!`taD4v}LVq6UAsD_#JJKf8QezQ|I zxrc8TDJ-ABXgjIKR+$G6{eJ4mIW0#J6v&(i%2m3=J6xu z_Z++T=P(x(5c-byeviOpA)T}9WteLzxy{bkv3-PPcFMaW4ut@5o2cU1{q>of({Zwp z#1?rM8&8lX2l;xPmaP8YG-Ibp) zuzcdS*9Rq#g<&wkJ>p}{OMZPGJdZNjZweOPoT%B7z^z8>S6}H9{gSkBZmN+$*i4QV zCb+woQz~Q-Sy%N^NNS z^M)f)OYUx>3D;h`*zaZb7E>-+1BxfTc!{6J!JWjJ5k?4~4dz^N;AOwH*Z!c;dh;T& z&~Qu&a5sIM_0w=5Dkm#yn5?sRSCxlg6v~7xpZTs{#SWYCpg=XHUN6$Azu^T-6xem*uvD> zxA)RdIk_pfwzc$nmN!I(Pq9=Tb^}|^aZB16 zRd~rZsloWEC9%PKnonQe&z5gQS}aXYN^1cpb~a5fROuOhzb;sLBZe_6M;oUwFF<0{ zejGe-)Z195W!#L+UWLu3b|FTx_o4*DA)=BwrbhVIiSE3;xx)SEJZsnOVJb?`a7=~esDLE89*ii=qZ(T&;A13D#gL%D37x(QPP z>%-g>4M?1DXWf0Z#r)7}bZ#4K%-@QpfxPZ5J*Cu77X9};b%bh)tK8_}_gAJti15U? z|L7v>@nM~OrmkJQ7^O*!C#^XCma?N3^2{qHk`vV8KSa^^?4UB^L8}1`mZ9PD? z1)Ucu)Cg#v?j_!nyuUmAmIz&Jj%*k6#}vwHI{rAt?<|)t|BxQqqD|q^-F)gK(|C>) z!r1$t)@Xr$wOcGH=KL+_gL(K9*;xU-TX87N5VH%4Y*b!SxWC42W2BkQY5(uCI(v9> z)aO@l@N;@R(g`rt%gVs*jp=;4C<`)c)C0Q9DZMZ?Hs?E;CcQkBC8>J_F^+2ZJ8MNeAH%gyJ85)3Tl*i=(l>Q?R*fNXDV=`JU-m8LzBK{Wf$pE>cnA_0xEAog%zpY$ zz>-zJCGMX#+&lXkAm>el*AfQ+1rE#V!ueXyDBAx{L0?U*JcTur+?@v2tHs25DsW6> zGMm|+OgT(1q;ES4ZtkKME*^P*?bkF_(=>NOCkJK zUe24DX7~f>8FiJ##jDl2DdPMk!adU1CfB7?*&}i}rM(SbC`@%ri=t)?kJTuN649yZ z!kd~GK%!cK!SqQ!E1n-w?-8Xov_q>oQ}XSR&qENLMUJ6J5yi88Y5JIabFSnmKQMOP!3$Y& zlFkJ-jeHETW!XW4ot4#sa(&NoyF2!QOMZ%Qa3+ik#I);)qjzX}cYi)&yVi7<&9Qos;E& z!UuG%itxpws%Uwf8`90@!O6B#Re>yf0N_AYl^I}_q;860_1$)iISKKB2@j`&U)iF@ z?OK}!b@KYCE&Zu}ZNG1jZ0Dgu!OU!zYBdi=!G@(M-8KwI{n5#WmMwI%?A7~^fitn|D*I<#M`_Xi0Wxp-Vk(evyAeb08phVN);VIAdL z_b!4|EW%C3{kYetqvoa)H-uVr9)J~l8+SV<4$EvF2gfz}9Eq)HSn(K8z$f2#+GRrX zJBrc2ip3cvY+$O(V`R1!zSU(HGaLr-+CKogO|FT4k%?_Q$q1h0eYdL&6Rs@Hng`*Kt6GS*RaI=CcInzjTY-XGFD;eH z8>#<}Kb7<(;O$~W4ozwJTJE-;@=lPoEYBFBf-szSXJqRUC*+YrN$Pb+0_qg0wldTJ z&&IeIe>JY>tGagZ_hTxipC#)9Lj)7T@|BvWHTLIi2TEMeDPTcXK6YzHzEa{a zIsfQuWyo=fWg%hFYzu+fIY4JDv#=jMSegsUsu_i>iUM3BC-Sh{^&cyeG_sJneDy`x zWfDcOdZ!#AE~1>6$~;2Y7mno+sGuw5rsM_{RUdT~CCl2*Z75WQ$_ ztxu>u-Jr*&<4*V(=?d1PNR{H^;|hA95gCNnUrm` z5L`Y?Of&ge5k&C>$qd|$H4hU%cjU^>6rrsNR#vYWY1mkzku`?T4?&|Mpz%N%&Va2XerDT6-K$1M_ zv)m3pIslJUy4=2$JcpO(-I*Ef!U0~CVUmgV_*yeKu&{cP)CsIWW$O6mD)sE=Z!yRc zx~=AvK2=>%%xiwv6bBVa4!X{gZA4R+V+K>l2m z)YR3xM{fMs{L<#`1z)oiB}%Od!H>)d@x#-97V~r!Dza2nKcQlpa^`#8O;Xk*L;PJ# zGZCDQ8C+kD>&hf&VPMf|wl5OS^We*ISJOH7eiX$_O?tBm35^Svio5ZYJ zS>C*lixsWq75e@ zOTzHm=ql~9kW_HRrFVRyB&f_gTJXfPEbRA@Gg@FL@vo5F_HMU!gzwr_yeGqi2T;pV zK>6%{VGI5Yr6`nTACN;3?(j^&p4XOo3VE$V;E?9}NwwVk@22)|zjDyE^d{B%F1+Y` zw<4jiv{}@TwCaMkj)^1#CBdTxP8kwthE5V*u%%P^Y<1U98D=u3&+vKzT`_H~kF6=1 zeucUvYCIe;ozjry;s1G8KatHw?5I2RCxxwGVg({eYM9w9tMIX#j_2$^YnTsVt1v-A z!x!k{7Bvb&PS3ZiiHku*#1YLpK<-c};4ImG&w0o76fxK4YeWtN0SYmBIfwP;AkWmQ zSJ}U{awO3{pSayj?VP>pZYhwx_A>+>i1fMx?WS@^p0#;XVNgS9Xe*iqERR(JDLHov z6M(z;jROrckfWlh0}C_3&deY+)f)=~IEm_FQuOos`=8)cl#?h0~QEVCkEV$7Nk=XVS;Jd??#aJj7ns)hi4M;kkbA z$o==tX>*sk)7y!+1nsyc^+}H#bOrIk!a(eS#u8!p@A{TnR>r9DhlQxnS z=L<<=`&G+6d?YOBNi#%c$W1fk{=4hxZ`|(e=r4j!U^CP!2sCE7{PhCe z+CPF>tL;)`Q8R(&;Gz0kd4~%=|H$(l+bP}MvXs6#B4U#E2zs)NwOT^xqNzvmiLep| z^AABWK#b*%tQp!WNT||e!6+0z1hUph3PH1Uc%>Dr=tT?)RucEwefrTgC(9^c`^MtO zNYck14Q`gw{L#<%SqwzvL;Az)cJ5wMO(Efhvl5yse^)lcV~rL#LztJhl)1Cl=GB9@ zX{9gNlAoR%|GA+5$Igdf;{ok<;9`SF*#Q_x%RLvhM5HzpnH!|-W*}j900HpmrvvcA zq-6Q+4b_ z_WWTvtmVbLa^yhV@s2f2V-B^M`}Ok4m5Oto!+*Vm%EN>LyhdcBk^fC`9*dkm_Xyub z42U)|p=4s=M&l(w?Wc6#mI1~mjiS;QZU1o-YA{8fl!Bvv9ea;QnUr*;rZIn<7OO|= zl<89Sy02}#?qk4`_&DjDs5lx#d&iGWkr{1q{##;bIG7NVLK;QAu3bHle>IxWs~qQz zheh+UyM4ob9?|hDg=@fDX%D4n_Vt?A+w>YLCIR_99VCw{P`@Ah4}K!j7K%7T#WfA6 zzTL+)xfGm&b5NVI^(FGhF}$;A&HAph$G!#84e}F9zt=KAVUWM z%=Fo9(P$2 zyTF0zbG}(TM%Ub{c05pOPmQNM)I}tYlc;QGQNnvG+rI{O}KITW`)J=+kkJ7ORDsg6=N;{)XRUf&TE za7-nry^&H&uE$a5p8+yDX2c1Vos&YF zkP=HxrXG%TTmg#y@qL4blSH;@=0J_^xo9m4G#Y4Fg5@^lWL-)!>I6(ELYXEzqBdF~ zLG7WR=$G?v2GsN{B$#2cuDj^t4hcxb8X%nZ)P$-g)@;?|9x5jiJsdOO4!I`$*{-uA z%VX;gP=B&o;@@2p&H=e!L)4obB_f4xP{YDUV{O^!?*X&Qh%PAWas9iJUn@j>xy7NB zJ%mR zV~||dAdjN& zAI+-Z{JeAakTHhNQ6dVpIqRD#Gp;>5Tu^2t|S1qJ;yIWkh1PXc13u@N3*}6%kb#)At=@^a#>Tous zT9H6%wbGEr1Oz7Cp@t&V)XYi4zY9y>Y>PP5{;@Hc#=wmVoW)Bt5I@s2j2gUuoJ2;P z)|?NSQajt4v;vU$C1VryMlroQrPH%zz!gU){8wlfM1c+MJmcTS&>7`FT(sDS^*KaR zpefYty{}<2RYy3!zsk-}DbU%Ix=_79X{!P`H|o4Er6Bi_v=w(2R+q76cojy?NyT4# zRMPfTjm(k8)2ob1v%#F$)eywe^+c;CERAW|g{q?+jA^y*kLekFSdwRI;$)4P9zn1f zWuXr>LQV2`sq07O8zYt|oU}~L-jcvE+F$+$;ah#A>Jozz2%_PFOiL=ODEaX#1I|FS zAC8<2u%)3n|JE(Uh|gqY5``L#8doD)wu|O-a%!C{HvwCAXRfpg%Ht4avtn5KPG*js zo(2U2Dp-f+Rc0tK_r+T>y2?%#<^)NFAp z6BNK-5}qvASR5D`J-M;~W$8ZCg^<8-5)VG>d%P>>VrNM2J7Mb8@XPF6=d8j{;Ev%> za#kLJFTy2f7cl>cm*b~15?0JRfRjr9iRSBmaTFI2a{*6iKWKYo ziA`(ML0X6Y#x@@-lQ;Z<Ob55Vy~Xa(SgC-`4pT^H*V4 zfKk+HE7JASI+fL(%D+%*KI3?*rEcnxJ|S{c=W4BVq_1=WW~Bpg^ZsI)+56M)>-qMM zFEn$O-ulzy?fEWh*WrG0Bl?D3xW!9hEU(?~-RJEBr&51mEo0e1d?fd{s?lq2`x1*E zC@H-y{0ak{t3TigdCv-dS9m>leQ__6IZ3k5Z4O)JAFDs94yfKHeNXImj>}LX54}nk zMn}#F9hmO(F;2!~B=0(6qVyhbA~xr1RK7MC*r5?!buHL^sAvqWo6^Nn`ngZit6e`7pL_si{&fQ*)>W$%DgLQaAg`(9qRs3e3b-e6eUPyM*Aak zY;U^wQ87b2T@)E`_Tu@8-RXEtP(s4y#;@=vmb(PC$9ttecQoI1$JjhUe!W2{=%?>r z_gp{{shm1xq3=!^Dz!7$5^ocsVoU(taeKP-nUDJ2yb2x+6DuM!LSojC1{G>S~yNgE7!F3gv_aKGBY%zpIh%DDJA z{wucc+~$!nR}s1_CqY^4-rKM^h1Dbzq3Dgev?1wOUw_N$vTIP3e32FNsbY4&|D#Z# zlAwk?dQ+eP=IKQ$Q|#nJwnYf3ZwCQHv)ii;>M75At7Sb>Yz%5zP3DJ+OWseWrf3x; z5C+TsdoGoTk>i=h#TtZqQOZ)18fBoe5pToTZ0SsE#H{3!cN}K!4$t;k&nY_OG*wI1 z++&SygMkAjoe^yV$qO0TXsAXUhXRZ>42L{mZpw#N_s-lZsUKT}mq$xt6H(k?U27dXewm8xqQvUuR?{bdu0|(=7@V141 zE*U48p{49zJu&SOLJ7J46Y2?+fmv!g6tXirzWbMyJ)OX?_V1n=U*pLc;#@9ZC%OJ| zOcSlOO`^W!vLEp{pmmRbOt0=c?>Nu=(o)xSgo~2hk6hoEi!+^9h^#EMa6C4SW5K+b zx?+7dYh@xV?&K_YUA57?1yH~<!)t$qtKXj8H3vaYPMvXo{q!QBuS6qybNEG0zg160`&^O~?zvYg-fh}U zT^@gX+h0E<*GS)45D4E;F!WjYpjU8_#C4*Rd1`&~IrOFGW2OTtaKXq`(~0$mzIy?p zj2VOm4vJ&l9UfB+Fu!~aZDj8!k#a|(o^sE%EW_`^tD`wFAJ?cx8cT*}Lfy7CHWUCuc5xvPDO^*VFA+IW(Lz!IqXF1nq1CmyP&Vb51V zFj;s*jitnwy5YD zRhIbFXb)mH6$WwA<3ty#p2eMx+goDzi^jCuu+&I0TI=`m@=jV&dw-eF(% zyUf$sdVN~VB5D*RS-enQ)lDw)J}t1NjdL-3g~L7-GJW~w=_IB^ZD<9lXe~vp_S4;# z+r~x2VRID72=DYrji*0=S-6mbfF@ETPRNy890k-A^rRFF8C0fP+bq#5ZN@{4CgM;< z?$LRnA;u3DJ=;HhbR~cQ6Cam=_JshWq}rBjRRbg3|7DT4bG`^EeW|6=OLH+roFgT% z{kWx=P1kF;@>q(fMP~BA-lWtF>+}%#)=|M@YD^D=fb~js5v-`DfX1y9yl6krou)48 zfZm#__wn?xendl}UAUMs^tW*SSi|DbdKMY$+{c0KP~F>Xs4(z9WhbxbSfxGwm9HjW z>5_+3^u^ptCa+~ju%n%o57c%hip$ZLbr`En4^s=M;*IUyXQ9;++T+ej6V~AWU>UZ0 z@t*^}Qxw9qx*$Ec8pG3QftN=7Nj|~*gZ*Sp7ZWBXzufch1yc=KHJZa=-NpkS?mwPJ z0^(Tc^3j`T! zt~t2ch`uJANk8TO?5~a+r;fK~6Ku~XT{;0PZOrwFMT?8sm>ts8{lGw0X+A`y>^qqn zWaH6`nY2ZT&_DxoQ|aauqX|q?!LpH9Z~8r`MR(m>vvdqMftb0A?}SrHkE#Z8UBL;m z!4TKZ4_GbJN4dYs!1M`+wm`e*`Adcw-U%{1GTY=mwC!?m)9er2y1(gsRmP~RH^txCM?Wkwtu>(lpLi)MEp zCX3uPYJ9Xp!m=RvNaEtEP5l#x7_%*^efH@pQ;5#lq<$oZTC3I$UHa-aXafZ8dhjBc zPJbsqojB>lI+F!a!p41QeUg%7Zy)Ncd0UJo(Nqq+3iKUpqB7Bxtn-xw^PJp@p3vJH z)z33!@Rk-~%fI%nF#cb7q_iF(7kdQu|Qj#71;e1h$S`xMXQ<3;xf*xc$@C~Qg*c8wK0F>t4 ze!g6E=L`CSz-OQ^!T*80a)}vAEbReENbjVY^}b&>Ctu!Q^3DHkJvl+O1k7~J^*(?L zM5OR72KuZ2JLK;c2tfW%{q7?+9Y`IV5*K)&*BVRJjx>41P*tC^Gm0)@7r+|e!@lEL zcSKdcjqv_eHo7LEAyZzyt{C0Bf+;~vY)$v^{3Isyd8?q5TP@W6af2~WQMTW^ zw|CUth4&ilpBBz4A`uanr-FAzBJ_3l{GjwB_`^6*F!<}{DHm9@WN_8gq=;u>ZUek4 zZUmNm$=Fy>!#{lbL6{e$Q?+PSGQ|_;x|}_;{Gd|!a?gaV{L>T#u|T*D6ebM6j%rNx z@00$LDLwkK@*k63o0d6wD9gdZ4Tne)B~EqdS#h^48O~kqhDm$HFJxB2dD#GLhl49B zX}><3F~EkG+&Lh>MxO|;*5JAjlL4Q0CU`l0E0wCG5`#h;Hl6D2oe}vBUf=V!Pr8ek zeb}dvg!me+4;=ypcPj;dMgUB_Jr@9ze}e)kVe}6F@G2gu<!GAD@8)S)bll2e(!S z{OF-73Vw;M6o>?TNXl4EaCin@E!r2T8I(sG6JX8j@xD?nW>>F)F_sF)$pQ)FtMt`i zvb5rTc@7N;xx+{eHnev65SoA4-t@nPJE zJ`9K8v{-Zu%l2L#{j@6GIT=W;_v1%Qi@;p;d+tG2+6HW#vWYCSb@ zql%vKZRxeAHUd;>RphD0$Lfb1+6t)b@7^zBotc&?B~k^MYosU}&<#PTg?XdSwsw!g z)Mkhm*|kQH@hAbPr|0`yB)?gf?ATfOm>gJ*!Pc@3F(MOOj^x*6@g>Kc^1cHTJE)Mwr^KPiLM#Hq zWT2X>;(w@9{v2#hM{vkh8mhomJvSwPb=oBwA zp3sViYj&k~SoEXo$5CfXe9JJ^Z|VxtOUC?5O<+4Vm(pk0gDj@QAf7bp5Ew2a$-|)0 z7D>b*930Ou(}N7GE9MlTpXoy;z%)XosPqWIEH^Tf;;Mx#)ngUkzeRg84zE>jdexr? z#@Y*n&$A#o`5E-%AVX^9QWw(0ljYun3@gUSca#eO=4WG!REuyP(9km~NaNa_d8_jM z)XK8?w`#J2I@Xp#peKtRYdFD7vXN(?lY^>akHe{#8T56gq0me}xcuEaWj9?o0=w zs$@2f)J$$*&K9TO#fyS63cP`M{JMnZXACohX&NgujEL|uV)QAAQiONQ$Z=#{1M$?-eex{J8FewA?4#cqu? zy%aF+A(oKU-Q#E84!YmssQ+bEf|cP9UwW6f<0Psis~#GK03=DTvuXK&qQ5gKitBkw zoaiR`JnWFEi7i~8qwE2xl8o;qE=Az*YKayCR^lYe{9a31L}QDFR5JjbA3rkr5n0}=G2RRKpJY<9NivO-q==rf@N|D z6jFAjT;Ikur^EqPq0!k5f?n?aD%B^)Fb9dg{b%U7K;Qwybl@x?<2rQg=J^!B zG6L$*JrFN1==SFS*q8HRJO2Nfyc=3%`sSB>z%MwIvWgLcY1OWdjyIJ4NOGM2(M=$^ zzO#bBulZ>~_KN_re+m;$(Xs!(<|pq^Y=(CbL4<2P%@87MVkF08(xC;yMmSB7h1*?U z`Go2fMH-djqoch;=aE^%aqRv2_Nnw_VT_BSk$)k=#i0UaN6tMQH459}#U@vw;nmlO z5cHA|2(^(QO7ebHktQ42u?!pirB3@-?nVVqH~d#MRJxGQYjO+#1MmY#o2RkqDQ z=5*r&!K4a>O(~}8p^-P8XoL2Q%EfL(Tc@k`4mL|w$~#$NkF`v#Nt&?EC10v2Y>F6a+B$~S z+yc%LXl73hJXGdLl2bN;)(q@QDAXil9|kA=o6ZLQvm9$M5)=~1FLZ~SZM%{5 zE8*8A!mYuN3|fCw4;=J+od=(sS0{Ec6{y(@@_dmp8BElu^&P~rmuTJqqBzLaxEFgI zx+tM#U=XjeaV`SQVz_Xm2-Az+e)Hgv4u`h$)Cj9wu~xM~=vnUPiw{xNzdr!utGm11 zPj6dL(9?~f{6oLRzuCX#&GpOpqo(ZH{VM!{1laj?dFk?uwA`iGAPNsNV?fsI?_u|( zythca9=%+hS;mzX&*ca8!~gSOIUc>*_hpt9s0m})oGa)b5>#@-(TPE7o+C+J?d;WF({W#`J}`qgo9nc+ zal$uLVG^{(;EKxftO~ut(nAm8nAv~w$aF-4>rEo9U?rR|`Oy)NcyMDWdK`JNCODpf zerZ$SVSGlXs4T9nf^|rTmYC>#w61Uf-B=TcYYce{%d$DEGPc4Z*;XTxRr+`po;j-; zw!+>qo#xGpKWSLgp7Lu}|1!xpt$E$#`~^2Y%sB`73MU%oechz*7K1Y#96B0qvfRu) zBZOGqsPUSZac<&s-Yf6ET+qgxs3_Qh^SlZMIR6}KqW#D3nAbN(mdHb6a4edjgTJot z)Hq3tDZ6$z9i-4#fviJ{ImB^`yxQh)n)(qMN7_`g^d<+n{obBs#IG&RjM6dYFmrLr zim)do9CE^!(c1wNs+!2B_wQLIn{V$zI)p;IQDr%BI=t~#aAtyT+gss|+uyo?NHEqmo9lH(8k@nDdwuiZp~lR$WEUtNU>BZY;%>j!$CiL$3U|X8{RhM)z4S z?1T63Rs*E+t@F2c@u|6Y2V=H?pOKD;#ftM&Vj1p-ps`{yBiRy#qawQ>a_PZz!Rz;3 zA2zSbZIE`pvnelpWvRSS_}Od2e@sypZv+3ucKX;}QUkzMf zYD~;2x?(xWyoPtKH_IJ@Y4yYm#IJSE9Jm=Il=OpWMzoy^6g}~(1&W!)WOfNzQ$b?2l9$`~!|?;%@ifKu1G0-$=EwB+js367h>uQ;EeI_X0TZ+v0!0rZL4w0+rh5a(1CXTtw7lQ^gIj^YmVK4~ zC(;{$OxN5Eji7;ms9?xIXV?vVCTTpJ{$HIW1P?1H&<%wSbn*m?16!M|lrAiVW$6@VmjSqD>+8BMPcgoJHB(LZ3l_x274Dg_=sdnhkxTGA-fl;A zzF%bO8{}?xf7~D5QDqX6K99cvyLdkP3^oRh*%H3ZdhfC5ZGCyX3{NkKzTZ?ob)SWc z!t5pLk^okJ`0feS0GGPopV`4b_(iA!r8J+y~rx>3u%(~{7LRWXX=CZ;4$V93|D;?O260cdZIQfIZ)G%Il6ez z*W15pM>1jI)XWG0{VQ{Jh9~%ZnYp&qi9)6KdDpl<5=vWg2R0y!bM#V8f;++oI5Ot` z872PS_+~yE;wN&c+!bs_dLSpg1hx^g{ZQ6ZeS-nPo&T%De{%aqRvQQIZ$iHj%s2@- zHsOz6#3@R-AIIrN)Mj_Xs-Apl!Qaz_$Gf4~i)>i>AM{g6Es{D6atj8P<&OLQKA$Wu z{t6T^`y;u@s|f7-e?B z?kz@@r}8_YkDHAHQ-$93eq(fqjod7rk6V{LX!tUST8;ohuZtvdN7))Fgfm~LZj1JJ z?43oM%}=vUTBkupWoYqqE^C56C1aR?Il}KGdouK$w7&T>7sv%|s5~qg!j;XKf0cnx z-=ofKRu^UGQurf0m8pPixf$4B-?S7Z{@E*BNLME&PsQ4Cv%!@UOZr5JiKz{ee-S?7qI9O&oSZu8!?xa4gx%5?&HaWt zWEvjHS;0qdGiL4a;5Te4>G$<0?@+>7+d!9eqVCE}XgE7lL8%A0^LT%?=P{GvU8%wt zk^s}d?nqaWfBSE53&yvgwo7E>IGUhoU#=21pwXSDDd50~TeCfK02euh+3@B5tZrnU zhmTf!zI@75?$A7XkY8TyE07<1^rf_<8YZT`UBq#s+#q9Zzj+pc2_L4WB_duYE8}jq zyU}4io&sGVD4-FD?6n~P8=D=gqU1ud;lsyng+UTSeO6>`42MnT5i!53)}0~zN##*%e^RM-*Vo*ZtxWqlTOH6ckRURfwqdLE*NDWx zG*W&?g7O>~w#tQ3-HyLl%|iOsJd+eUgGyGY%G5kZ<11dJmR@(NmoOt)1+ib6Q0ONB zH&J9JMWt)1ESE_3N6Ig|hy=BlY!%8#>92CG-_F!YSTcs>N|ZofK;Mj9YD$T`qm^y> zeBY0kiK+{Nv~RA?Pueu{6uZAJx-U+4B80I}Oip+JX*Binc*LSCesCy{po>9Hhsdqe z`Og#NH6X2-Yh7=|1=k2}@r>!|1O zb3ZvsiVaMC})Pp=GCCEF#|aZ^?Zzxk4cs3 zUpWGR3{M3#(HG6s&QBZ{tceaSc22|55r+FbtDPFEiJsYgmim>|FE;wxOV&Bx9EJ{y z?fBNm5uka`svf*U#tDkDv&e5_{t@!nKt8Q^$atL+BIUq{gS3oT3d zT=I@-83_M~{>?u;90$vI9{l+SMy-PiV`KWR?ea7nWOGvzW_X>1^}%jIQU?=%RZ$ zcVNrU9OZWU+HuGl?{cx%STDmT_1)ysZR_^7@&|Bu(8O#u{-ht{OzLzV!I&lhy>U2L zDW(b%m=B|8AR5b4+yV@ja>GX&qt9S|Co>+&k4*2#k(Z}5;<+a`pp;}RH;^Bj4Rml;%q-dsljW{4JH{+$DafY(Tw-P|gYozDC`z*L{>DC|ct&iv|2$Dh9Y?i?3 zc4_MMkENVZ6InnU8Qq#6=@7Hgzy(!oGvLhnmky!fhpy`fQtwx1MclpsLn7H~_F34d zjoE4}u4T$;l|s#LM}xxC#kz@-S;c=e^ELonsB>?&>MAp=f4e<-v7ZgfeiE-}e%AId zRiGGpUfBe-b6vxLrSQq3cinnA_xD3lGV-^$B?*o-g1SNqRLtAb%e>=Ok_*+SJex@XGt|9 zgp!Lk{;aLH45Jo=)4m^Bo948?r40mgpX>xQY$ZHt?=#$`qZ3!-ld!1I8wfWzCEa1- zzg`J^QCAy*HSw1xLJZ)ZDklC}R>_l#8$^qOiqu!x;(^@Ps*wi;WTCV%`NBo!Kon$K zHjUbcxVj0&LisU)+BaNXkJ8sX@{-VO`Fn2|nA<{NOMiL;fs3K+xxD&fcD68~%yW37 z0|iPEz1Cyv_GAP#0k~FVU&=jD&!>YHd^1zlLy(_r+0!)$Ep5g{0jD9z_B2DJrV!<7 zO7@;+m>J3Xs@jMOSAEFboUd~4I7HzGCz08oYu@cIxgUmG(fD0O{U`qAF@A8|%Rt*- zXC|i07CA8Mt%Q=E@66 z4_f?j)IBnLADcPum<3Oc9Q00Dw`0piSGoApEAKp@>#2Gj-s(R;6>NWWRE!kgQW^LJ zvyoyyR5zP#f!kgevksz1H9v+73V?F~y7yE-*_U1?=WNj61DG2Tr$lq{bvrpdcdy`8 z3Hw*h5y`1?oC@X+sWbVgurFOsD&t;GeIRVXR!Z+EnBq_$-6Bv}c=LEXV%xDt#c8ZrNZQ^L@f!*7;;X+)EZy+Dn%~IOAc|%#j64F;y$y zPI07rsQylLa!r1@=dxfrpfAE4PeG+$Jh?wSL4TvG_IIpTw!UY|mQ+C?S?KnSK0Vsj z??2|M;oxFKPTX8{SLDjIjP{2iwqQeZ!k*TZt0H2HcUwubG%FJAn zzpytl)8P&rrcOY{!vT=`On+a@?Spi7)-z2#v3z5;< zwF%B0je9wW?zDvc0TN+|L8Ev%tgbaUi&>bizs2Jfam6TD_XNmonhmy(fHm8tlWnSR zv5Ao&C9qR}tgikxO=|BsCa@C6jE;c8r?!(!M8q#N@t6z$Y^Ju+G;xR{q_XA4=7Y!f zQVSIZCFy%*y3%pfSbuu&Gf=T@w47w^mv8D za`a=Y%oZBKH1iaxbDCUba=X?mH8UAa18hy>+!&(Jn!+ue?L;FCCU(UpsrT5Ef?VP1pmyfmN?)}WIcEjzSV?X z9RoWvh-a!198kqGO`TBHoyYR`42^-dK1>BY-{Kk*1{hSBet`YBah#@7Z;(@+mlB-@ zt73~^rKv28G>@>t;Ip?O}mS1L?8-*Z^R$f zg+BkJK&ceG>R>N(WFT!uF=VV`Rz3)ARA3FmDq&aAb2REvhkyO&bR)W0pQaRRN&i)M zM}~Ug5Quf#3^@*2T!*ivySAe*QZtIQ_nJIQi+^3>sXH)`m4;5lrOfx1+sJEe&h;3m zui?e?At7}|6*a|6_%lOJRAZGfp-Bv*JtMlPq`pc|={OSA%d&Gy!0FJHtV%T4`$~h5 zZPI?40Yw93k--)*ot4CnA9-DP8W%qfv!IqN4)g|8MkDaDN(iLv5i+4FFq+^_Jn+N4 z*g@EOJbA;ZDjpCi(}*sr_%KA-k$Lk#qS4MAdyowK6Oi(ipN_b_Z6yTd-s3LkiPpwX z{z}-vHmRuC*n>xJmqR8D_tp!#ko&sBsmbdL@02&bH&M|!O=l6cXwcBB+&N!)$4a2O z3becd%MnkdZE&@U{QOXn%io~G&(7AQ(|$pwod;jTLLI$WZH91^2`E0gvi4IsXhCAT zKXEE#sy&s0f9$Oq;%Cbi)oX@59eM zB+4*o3cASkbDIc-(5ybl-Bg5*-g2^kpqv?;YA-x!`f-zGtc;~?FkfY|Da36kB2H$J zQsi3}Z%dnYEVFda>Al!<$*<3y0MCTZ=y}T!2o5to*E%`kup_iiU@R(~0X=P!0E5Mh zo$b81X-0zjGm7v-xjHk*wl6?}eyeAXvpaj4sPR5OUQ#2a8hXv4mk$Y_xd`-!e`m~7 zs8CeY_ZV@iHs6S%TN^Nvvs+PsbomzJ%5iM^;7s6q^fgr;BmUvaaf6pCg%xY-e@=gG zujA(IqV4*ls&qc9d%xwNU+YR)3ACsCw`e$OG8oYk7q%}{xq!xraq;8*Qwv+1lX%p` zQHy`WL+fI{IF%ODyUefh&GamBPL*kmqpKyYhw}gc3e7jX6R8pKu1_q!6?eWwOY*YR zbf}}P=$9a5l$cp>F!Mni^c=83xq-1%+IsydVk|5?C^z3~Oro&WJ z>3m5S@I`b!y5uaYg7o8w0d^SK46rE!x4VWP$?nbzFMPNxg*!T#`6ZVJ(Qf09-_=Nw zFSVg4@EZ8%+$IhlBM=3^BqnYCB?|J+|7z8=f~K0TY+;SKS_OEs6X4EJF5~+n1nx=e zQ?;)aK_BlBO}BtDcJ|d+%$MPj;>$M2>2f43oZ_nEj!aYG)CI+PpvS4zJ;>_Udk3%c z)cl>bUgV%8t{&VXNcqz(fkI0!9Vfoo$4@B0s7$0v%Q$O09_2?rce}r_F@M<8yk%Th z$$Z*F8GvCFNk>)JUcR2VsDRW0*qp-c{5ilHBrC;)6Gl0Nq(8|h#9bE=rAOD4OlRGG z-b{FfL9S`^IOKEyj7-#EG-lFM+OE0iJhm?Iq7L)rP5%LDPrw?-@6p*GrY}DCBjnSU z{G`#Wy8NUCS+KCa+AXvq6GzNBGN!<|k_ua737`7Ma2hyk+SI~IE@a57?}S$-ldST= zM;M3x1WD1X7%wy{JT$TEaFWo0dB24g57!HViXjc z;3@*)R;K0*w0cgD=}V_>epQo}ZazAjv^)_(0>_aAE)6Y zLxc8za+e)sssKw1Du|cDX%klj7y$qtSQ-DWjNbw8>FodCpqoqpEok161*Z*C7hr)1 z7zALY|8q8eN1eI?xtIg6KNBy4lVE7u>dgUhh)AB12NR#^caYva%qah9Vpcu`S`ZQ$ z6K-3c6W|trGAs!RGw!@C^opYgL1p~knB-vQPcITDs2>J^4Z0o^f(Gt)pilqPj%)I~ zHYx0M)%>YpX{%N1R(+msd`#}L`$62ELm>mXzq4a=fb*j?xg7QW$rFP-@a0Hx`~6vw zdE59il;dRcMF0Qf-uj4e58iudPgYKFA<1CQN-0vu`Uude_g&ZC-uV6fhP(XMMJ`;_ zHwQfs6_`s)G)h`U23%D``Po5WpGFHKYMAsuhii=J)@STp^T+eOF(drW{_K&y>(#9P zwsZ26RK4Kcd9caUjc@xlHghF=Kk{$QLnQ{Rhrj%7U`kSjDsu^W(9h=G$>_Uik})ni zR|B2kafsHJvtYrhtCO-5jKP%oF3K{9GdX^6NE!K?S>I69AP`pKhdtX!s(S!tZ~hj% zsR`%S-}hCcJl~4bBfokG7)$Zd=EwI)yZT`9gH^-uU81uP0a}t#m^UpP%v`nz6l}fS zsgb*O1E?JXbcubNJMtI`WnJ*B2M7>@s35gShx4j6Uz@f-hcitR$*WmqpdgJ}R=Dl^ zQ>1yEu#4ne0x0WqCC5b;&Lq!e{qF?k5o@ek@*Mvs+*`;;*3n|cgYkm z8V}yNN#jM7Un(PLA;-aAG;b^ea4O$w@m@8SaXjMhZdYH3WhuA!vX~8?KF24VhAk^$ z&UC2pT4-DHNafI$0qO&b5$1PwLm%f6n|BIHtjHN$ z%bk@Z6Z;QEp&WQg8|9eGU*5O!)LwIxdJu9bNuBu%<)nRtk ztn1e3z(yq{rqw~OfumYKKLd0XYj)k^4n%pQsv0icDPjw;BRsTxnV4YUPVBLl6By-s zt?J$zfxz%0d0BA!o&J3b45&WBD#jSEhsGL#cp%yA>Y1WBx{6`$(??|7^BhuP2!onxv2F( z33LOLp}_@2C#>4IA5MI-gEXbds%D=d2&3sEyl)gnTt&Jxh)J+K2&$(WIm}w*Pseop z=o{Nx&np&{)Gr`A%6`f9KF!S~KC{4qMeFa84o7+8Oi`>m)AsLCSOWwPM-RBJtp^A& z$(4OLp!wWHjZs9jXI*)&(T+zeMnvJlfrVs$J`bBHv&NdZ#p`k~(nw~&2^=Ama-s#{ zlz#*G8zhS4h%-j_?@gmw*Qpp-P1d2Q5Jd~VP{As721SRW7@Cl!F2H^MlxISQu?R=? z2}=#2UxJ~6&CQw}jApN^>*<&s3`#*z%BAteQbN;KiT6QQ!d(1N<`K>9TXVJqTG~RW z4}Etgf*nNXjkIM&UxCW(_^RqvRkZJFOR$94&We+3L0~8~FC>CIc);aysyhu13WS-u zp$HIw_ADnHRg0xQR!=_i3N0b4ZqYBqLa=ie4r%_^)~;&dl}P=;}U7*&tQ+r7Bg zM@Jn`2EGgr{-)7 zaCamaXOV-SU-FMlA2$WVaDZ)Pex+culsc2z`pm}(&`*zPlBxc&IMO@{d?O@D(19)a zBWttBF?P15M0iaGKUx8H=w+^1zqcTi`db-cughJ}{iPLIIS$UZd~*v&vP^%@#&=X} z6hMvx4t|Rcz}h3`{dvBNvUxU>g4gV$)F+szmA+Ey5C_*#!*xf(j#q-Fyb05`b;;~I zl{yg3WUg7D+Fra_*23ctwD@*^HG}lz+5@e6?JUTWM45m?_p=kuuuriBF<4HNpP3*c z?cu9JB!~cnjgc^NTwNdlN#w90mZDlEYu1ZU3{4f6Y0{lN%LTzk#D=6iF7xwhARajE zw<0a&|JP>p`E^0PH(6R1@zCsz=?C+o^S=AVrAR`e5lo~yK{JXOP`yPdzU_Tq2fIWl zJLLl_V2VAS{j%^xU%Ls2>p$b5)U6$X^6f#)Y8vMjZo+^jzwg(U7q^>(JD*P;Tpt}3 zouyIx40#FD?I$Df^g4SLd zD5IYjDVrKyB7alWfn&D5U_U`aDc%C7@}XfbzaE<&YFSyVp2NSa-nhgp+8wN+KKaev z^yy9)4S0NCpAA&ZlLh-1eeCk6y(UX}Z%rkV_jRJ5`(Kjyv!~CJex^;YC;77mf=Jz2 zd;iVQGVn6VOajL*eub!SUx=F&!1|eqX0YpER|~#04}0in|Ec#Bki$MYq&RXV(= zg|_*nicI-TVM!3R-k8*G#?ubD8J360>K$d!Z+^bRkqk6VI`-~6xCn#u!|_89exeT^ z_0}sgL98r09@JE>S7p2%bcR?2P;L_dultUkqt#65#1KE#dc9Q00uK5i|Cu9eM4TtU^$Wf^&gZ7pMQO6K zAZ~ps6QWqKKEmKUP#&F=xRKP>55uWbUU<}9| zlwywN?Gk!*+bJsLuFTnzEB+l|TXpxKR3dxgvUqq4BqHXZ>F$(xF>1|blmQa89u7ka zS#@wUJaoO#EjlwkisuTc>Z&|wJ+GQkv5EbzJ*JGksD%(#Fq+XF(lnVV(!7SEu@|Rp z4)^jUnWX}s{$7dj5!jry299!iMG;DFCEafPK@@~F+&`$*5pY+<+gNF3n~Kqd`PMke zw(dCy>^~?((Br)fg#pQ8W%nL#jx`cqPvo1PxZV2uDsNAl<~%H9`yYkE5kb$uXUo0$ zy)*~BCfN6noeV!WZv?Zm3aQosP@t4g%flMHkO@{8C55cYrhSsxPU zXMBSk_I(^I@7iHORkVi!UP<8h)pKTa)ef>Nk20;X*9hcm?#GsFc+4FYx;S63CafQd zjsaRCl>wdjWoNv8?`Kfj#LX(Vg;Lfxx6YjPr5)G3MEhpGCJy&9?KaW1RZGU zm>nC`yTOD4#FAaaV1fPZnh3Qo&^BenJx2QP?TM69(=)mYCu3K z#l(8A^X=b6<;Jew&(4h(Z)#^%32@%e?vKB+e^77Boe)E={~ng1BW_&00o#mwL;s?-ZE3sHzFu!uygC`*vEQ$zSuY$p10QpSj*!1g_rAPdCMS3@3+p;2 zV`LtrdNKEY_D#V&_$jLpma!Dl$qIiQ$rCjSa}&mYSyf1YmI=vZ5>I-x^x*vU;e{6h ziQct~)WRI6uwe*!AUXTzuo#=}hh>^%H}7JLCbMvGIkU_kKt<>hhbrzAE#B%;UFa<7 zmO+x(888w#tZ~}4Zytdhi@2tzh5i+)+RiQ?W&5p?usG=cWh9tuGhLXjO4>PMjGdz8}8aZrw5#Iul^5YU=J>De68mnd56m`xX=ZGuW%8ewNNm zb-*6|tfpGKa3%KzFK+x2J=f@t!VuvL?qw!m*7=Oj$mMG@hB8Fu;ks)=-l9fh1Tl?4 z4Dg5G5l4k9p{lUf-5hQEhI^sJrh+XlM}$Qur;%O(M_JX{kLl@3lFVJB_5!5QM`(*isZUj#==VcehA*Zb&Jk^)*%M)6 zbPsq}1Wiw4An6X@vR{qph=LghgudvDkprtGXQlmy{etxvX#OeolX+EWaEKUw6HOef zvs)%NZc#0ydz8zKy$h2q*-cdn+IP)3B%Q5b=oQ4(Q zxtdV>>m`kL{g~xTHNXhoBGpJj<%LYfG_MAM=8-FDJ%(nr@F^EaB0Go_EE6K@b_K*o zvqRYolXc_r+x;fTK_ZlQhjLcG>ypkv9x3^oBL2@Aw>CcIKI{@(TrP*tpKqS=xtQw3 z`)gS+EaPP3t^8-~_B&+^O%Ut`I);N8ViuBM8y>`8L4&}~UwKlGf3zV6zMeHyvX@JI z3>~10r8~_b zk$X$ijbWwWjvso6{=R_1!JoV07tlBupn*i*8RRc17~kaN`_=%W`vIT?8qd;|H-{9i z$lOV6XR6w~4C`{8UQqr768(FWdkLTLDpIs+{!;hX>Z$%SrsXDMfX0CTlpS~4<2QE( z!djCmb*#6F+~dwa>~Mkvqo3>%#h_Yw@GpQ{@ z{n}crijR34qg6Oa5TGx+-^KYOZ@i)eeN;(`8U3QCLDY{LvK^zk4UvwjGddD6CkUZi zKDIe@VX-XvYr@B!ZR;B|!yvekM2Q|+X-t808Oh}B+vF;PjqL#kF|g*(h*RWW^{vHw zPLljs?Z&*jfh6l?%<0P%DI^4)16N)q3$BYWKrWi?$5VUwC5AZTKFxutSl`t**K9<| zUow3al0r1hXr*`~&{uE<8ksK3?)}oA)ISx)P^@8*_Kt!Wgl*X!4Iw*WPbcDZR^gwC z<5<^&LUwZs#%Uxf1t$}{$h4rqvS{ZiyKh&R2Ohk z3<>4J9I!t5cEV%S*rg1 zl=KCcA6bl5$`&}Ej5?8L`6>%;lM8!nURco(f+S66T0})bf&g$USUU(U$j+4*it<0J zS$uh&I*vVBI^2uWQkB8y?NwJCfa1PW`VAj<%hC#+KK+H&muVPVg_M)7ZBgn4FIx%n z$qM4o44}etSCr);+@3VF13!Hy=W?S;vy!PyNH9&T%n0lk^RMQAYw9m9za{NAd)A>d z|K6Cpi^zlOoi09GQjYjK_k_E=M9z_% zFoQ+j=b2$XJik=G2`AVT_VA)P z0WZGUosD!dC@jgbOjX=9V2|yiQJu$?3x^((t2xhE!yHRwXm z*>g7dUjY#CxvFiwYv&2LpVcasPI5J`q~l2{sS;q7E%9EM$E=EPPiPr(2>;+}+^xf_ zo0bIf#j(3hcY9`;#h=xXU+Lynt_oS&M}>BVaw@L3h510Dr{)DVI)zq7 zqZuGi;7)ze@-FX^Z6qUaQew}3eUNXzz(GA{cxpU1-^ffEZpRNuQzUDLVQT^d#*0zW zhA*&X_(D){l3`}?PURlJEJWBiP&VXRnn;Nghuc`Uc}Vd^_WLLXeC(MWpUr*q85^DX z%BIYR=w|14459|gldcT+4unLh4(^fE7C4}xM99TOjV1r##_-`>AXjxTl!k%Sj=HJK zT`+*l<2JMQr$(HVky2LmpF41V-&j#rYv|PK7QN=#Vo?R0F;7FeTCs44_kzGhOFgIq zuuLZ79w&nOz`0U~y30a^Fer<)>1rm+Tbyw)iLTHWgTQ_l(T4_Y#WQjb_g0~st^`c1 z|G5cvlbAYjV1_lXbROIsjvAVm%DJ@R_Q-Ca;=sR)a|F>ofdiVqnrQ~0GL+01e@Yh;nvb@v z8O61plW-Q*xc5bvd7<_H>DpEO@mawYiG;*$Gn)e#Afm(^2hq`75f{9}5nI8; z|92&x|GbcZ4L}(ZGJ-1S@!JUK1B!af2><{6KL&{gii4E{qzXX)d?il+glMRTljC5g z4CR9DSJdx0181NcE+nk~ZkZP}w@-}?Tp}2A+HZf@GFEkWC!V}!+z5&YX6hs)ITC^% z-OoNq%DsE?O_Px=)u5pCXM=|i9W+?rImc5kxm>{ndPJ5I1MmC0 z``-gRLCLH?fR0CsL*wF8tCT(FS4Xa((Iol7>KUc#o+IPkCX7^6WU_)1f3A`^!Mz-s z!l#vVIiIO*HtrjC{Jlxt@;;YW>|T-Y0kGChy0}7Vq%dk>MM-}afIVEm10_-#@>aDm z!fmbbCJf7GEhD~0yRV%z8#)L3S<%1$aWw>)twF@F%PQ^j9phq!($BqhhE5l<^)DS4 z11#>gBQT+=a&QZ#1PNfPCk1?;1|?6^^PC(lBHr0BVdvI-v2${)H@B0 zd&uevSC`=A`5NDa5*lm)Y2mPHm3UCTCO}<4gK%>(^EJ?6Zg_oNzEkaH_OxZ0v0_dc zuq~lHO%_6)mr`eBi3xeD=xOu}L^;MKNZ#t0=SrlWqomqo-0#3Hge*ddD)5Ki=hRQV zuU8gmQcv`T?J-~z(!EdrdsrNvn?Gr7Is#`P{z)cnYTP~K!~wYjo%C%i;@wm|DLZJh z8O*YZ9}%$K%X6b05kLk~L?_s}dbnP6d{A;aT!+>#oNtM8%q zpIdwU^i;Fx3W4PbEFy}3YEza<+qzn?M)}chge2K$v~pjz0?6F%nS^@-K=G5))5y ziui^;`yjep)F*oMWROQSUqZ4e^<#Y(kC8Sh8J;%zMg*~9*lyP=Wjj>ZY<;WEK{?t= z13peF`Bj}X%$To2a?sgZEb}FZi|s_5BU^oRFgo-Tzncm?UDF8D611o;^$yjiPfS(_ zNOn0T>G%tq0${xS@}?!YP~4Hg!HWIbLt>A=MWmCQaU2n;#ydUlh?CO6*RIAv7@l&2 zSp1L%?cqa7-v#TQu}YhEXKTgZ4=T$=wwE1hng;JAc#7Zl6+=UtBh!{m*NUd9XPBy^ zS^GyXQF#N!dr@_M=@9HdSe;>JZC31EZ=!6j0ZIu`)zMyhTHeBo;aZhNd3k%o7os;^ z;mv~W76qweA!DhUB^Nmbo|IKT>6dkQ`Dq_Y4#r|F53Nei^7FPf0#bFKhqtmyIA?7g z3;m|^L22aea(bR?m$FUmUJcZ;sX<2@mKEt>Mgm~c-(Z2hZFbJPrsNh!p}scu>PFPB zg@u_K#~NeX{CLx}*l<5cCY@HLE@TIIFI<$n#m4LX-p|7$bado>sz@YNoz%#@2SQSV zP+{VXbdqqZO-F*l!mVee{_$ISSjpK~yZC`61o^e>NXz}T&G8yTEB|>K z98l7zX3V{tuXGB>nr67wlO!#wM*_#6IcG|Xc>uf`mXyFSfB;)}%|pT9+bzl$+=#&L zTH#Lkk_Wz;v9)^*EM9)^(>49A`QM)z*!8u*g@`&W2qkbCB~C)}vepDl z?PVJjQqL3g{S$hms&tx)s6+Ip)I$EERFt8AIR{13RjvL@?r@3Yc!mErds;8V3x{oei8nEQwNT{mBa1^~__DSqN|`ss%0Z?>u&rq29SKLhPq%KuLa`ZG zz{Hus)rTYP40Q7z6TR#OX>&TYA5$5Tq8}JyX+>fIdp*+qa-ktGdfL+|>O_<^9LBdw z^y#s#oMH3)>T{jXb_@Jv1>xVeu#PBz(K_vWHAlItW!&Hn!+IR_$2>ItXJFJCe68u?lj9<5I4iR zO&S?3F;9rJo|BAqJY4+n)dVxV;sixth0-NlpwLG)nU^Hcl)szc=@<)eR*2{d!@{7dYlCB)q{#) zdYrNOof8??c*dl`=j$b$&@kWVs3V)$R08~S9>+XnJhY|Al!$3dt8*0kO=K2&L8W?+ z3|-<npRLclK)Q3L3ppoBhmRhTT3AL09AhsAZ4hrM~v1HgnV28`hokN30X-@hp!c zrKp%y<|1-NL`D#P9*h|9hQM-z&pQI-o2XBQV*aCb81Kzg{r8P8LL0W7g6gyG%)0Dx zbA0D!!Fz)th0J!t6ain|7sGfq=4{qyyP-g3m^v=h3$N2or?W>VuO(BZ5x#H~7CW5t79!uyVGg_njg^X9dGN*?W}?=`=TwKlUV zemG3pR=cDI30|)hP@vrh4~~ZPIvEWXo0%2+*(Ndby>GWngJV2QjkQ}0-nOHq3La0V zD-Hn{IZtfZ4cf~9mBC1ElOq3!NiIh~k$zEn{{6cdR+#5TO(?q*b{*uB-t5f#pCJ<^OZN_b4HS&ly)7H zV;x>Q{&+3=Vn1_(FS5j+4Zeb|nM3^d>pajT6cPvUa%H-~pTR60O_OGR5-R z$Nw;lb7Ypb#Y5KO3faLm=*Mh|Or`Mz`%BsH?&sU8>8WE&I4W{Iy$v;&37VgVnIRSi z#IMv2rP@ib-1FeJrp)Qf-;J8pMM8>~?%oc>iPOVAvD|lC#=4cj^dChKcJQ{=j-8I5 z$JD?5B-Of?(+qSQ(jDOV^Ub8YE6ipR_x99+M|*?#8!4PADlhllJ?m+7m$KF5HvPVV zH_Ky!j2Iasit>cV7{(TiQa*I8azZ6Vw6cZxbgGLCz9ZLfhT>(LYeqYIq~LDvCl~sN z*mKHGe!x*DT7TKaRT8DsrNzF0Rl65&!eql6Pb~QC_?RgW0Fhdgev$}zGsNlXLA1Qk z*lkWQNUMk_AH^nvxBnv|DxeC2Ky&WMp9~Xm9J;n-G^8g)WYa^3iGztY)DO5oumva> z27mz~PC-Tm^(YV%K(e!eL@T*I@r(FKMMx-5_JiT$|Nd{^;5)qbpJ5!5oA*CIxUmER zDTwHf>QnM(O(f`ZBSrkX!}Noc#!;gPCW+-5trbbOngcY#e=VUwvxvz;Na_g$j(f2; zaz+G7<(J}zN=ru;3#AlOSYx5ES}b9z)iR|e$-DOFe7e7BxJ4nYJ%b_T&m2U}B1~v) zIGpDS8MJL^`xRcXBGbrzrjfdyG2tp2r0dGSkOM_3Ns|*D&|6t@^O`F}& zX-BFo8b2E>3QzH-$<#8b(?k!JL5~IKh%l6KQGP>2c-HhV*LKPxZFx$=jY%@YhB-}J z2LrKVl<^!fX&UL7IQvWrxM%y2g@}KP5AlAhCUH~4QbZ!sWeY2>ktzHJkop3xR?vZd z-#UgzDYN8Q{Ef%Xe&GvypoW=Ghw46Vdo!(>2$h%oC}dOT=JhCNNGfZyjKdpZsTBm0 zxg{})6^V^X zgq_#Sk-pK{l#vN}yk|zMX+#)+FKWO*3@LO)P&KGb4D!KQvsoa?c@zx~_fO7|51!zFi;yB>*(yjhwhtKe z)s$RK*vv+SpQh6?O{`ST3m@B`r2ZP?1$!qht( zt|Kq*09JM9BK)FJ*G`w3U!T{nbj(iW+}*dwcOsMvgulPqt!c9e#t^9|nxSHB7~P`8 zy^ITbz&rAm^Yuxnv)nvoD#113=JiAvpL66$>)D zdysazw#o)|^%|)X7cKr9+-yU`UOF0E$c$8hk7qGa4`Fb zrbnw@IJY6zgu^O5u7v6+hfWttrcsVrtyQO)zWY;Mb+R(2&yL(Ntb z;t|r+U?_MkM7mzJ467VKBWBhq{=T*4NW@o-KkdKs zf;AKPNHzb>-;B0iA4|DNeLFL$0MW{K|2Dtk%`n7blxEd=^c)|kJ7}O$`iONHC)I(A z?Nrj;(43av==u2DY}HYjjlG${*iC$v+N``I#Q2gXpXVmjBpTd63o|^w&p4LsI1+e2 zp^79IlV_;b`eFR{GnPJ~5W+!!wp8NTm1V{LdvTw$B-Gu>&2|$_BGWOWg;A z01Zomg7XsSctAIS_4TA5oy)*>EWpD1A@-H2K?VulBGT;Qq-Zr1?^CZL$~o5BM}0S zZ2?hO>Bd4muQ-E-hM*!Ox&OQCPmz?)9Vguw?je$I^j}bv4oto2rqD(Ihc0rb`mjw|{+ zYZY?_Jyq$?u8+W{w{Um&U#Kp%$D!K?4-Yf{jFY4O$dhHT7nzh6V;$|vmqM>R8uGrr zVF?pl0j3#&gWDc??Q?p2#s!?mp!U!ovyoal7~1mqmK3XTi7U48VH8KTjl)nFO3mZ2 zl#ZCuxc%$C2ZGYY7@9VdI6sU^jwN&sew<@BQfVoIKCk)&Ccl^l zSkO|X^!B8kc&cL8=5-_N`^k3&`J~tIr+=3wDs^m<5kBABH@eHG_v!-29g&G5v54d5 zg2#>Gc6q&f#{y*z&>YF!!rKD5x#&7nW*(~X`TOHkQV(_Q*=qQX2G&?;$AcsD$cP+x zBv?Cu=$rI#o?Cx{`OCZUpEggfNp5x}_R)dd8N5zXa_jHBFXbKS&ZEXSHp@qaTC`MC zk%3-?Y*ETRve;BMWvFk{?^)s+;wsK7r+RE~PWxWV+BGI(6Y16eo-3it+b`!+V||&_ z5#RSqyjYntLj9pJgKf#BduD_1H~td*5if-O?9F@wf_D>+KhmT9i@m9Kji%soA%i8K z#QLca`w_NK-0H2CbCL(BD2lF_-0Lj|I)Y=8j8Raa4dvrHv1^y0!Qo}3{pPl`d~yYU zY*+ruu{2MQ=4K8(u4>|f@7LjR`#I~2FP=NJo*0c)C3?C;3w?_<3H$5H5*7CgWPz