This theory continues MetricUniform_ZF specializing to the real valued pseudometrics. The ultimate goal is to show that every uniformity is the supremum of a collection of uniformities generated by a pseudometric. In this theory we show the AC-free fragments of the proof of this fact.
This section describes a method of defining real valued pseudometrics through infimum of the set of weights of all chains connecting two points. The notions of chains and links are defined in the FiniteSeq_ZF theory, with some properties proven in the Monoid_ZF_1 theory.
Since we will be using the set of non-zero natural numbers quite a lot, let's denote it \(\mathbb{N}_1\)
abbreviation
\( \mathbb{N} _1 \equiv nat\setminus \{0\} \)
In the monoid1 context we have defined a notion of ChainWeight. The next definition brings that notion into the reals context
definition (in reals)
\( \text{RChainWeight}(w,c) \equiv monoid1.\ \text{ChainWeight}(\mathbb{R} ,Add,w,c) \)
Given a chain of elements of \(X\) and a weight function \(w:X\times X\rightarrow \mathbb{R}\) the weight of a chain is a real number.
lemma (in reals) chain_weight_real:
assumes \( n\in nat \), \( c\in \text{Chains}(X,n,x,y) \), \( w:X\times X\rightarrow \mathbb{R} \)
shows \( \text{RChainWeight}(w,c) \in \mathbb{R} \) using assms, chain_weight_type unfolding RChainWeight_defGiven a weight function \(w:X\rightarrow \mathbb{R}^+\) we define the chain distance between two points \(x,y\in X\) as the infimum of set of weights of all chains of nonzero length connecting \(x\) and \(y\).
definition (in reals)
\( \text{ChainDist}(X,w,x,y) \equiv inf(\{ \text{RChainWeight}(w,c).\ c\in (\bigcup n\in \mathbb{N} _1.\ \text{Chains}(X,n,x,y))\}) \)
If the weight function is valued in nonnegative real numbers then the weight of every chain in nonnegative.
lemma (in reals) chain_weight_nonneg:
assumes \( n\in nat \), \( c\in \text{Chains}(X,n,x,y) \), \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \text{RChainWeight}(w,c) \in \mathbb{R} ^+ \)proofIf the weight function is nonnegative then the set of weights of all nontrivial chains in \(X\) connecting \(x\) and \(y\) is contained in nonnegative reals.
corollary (in reals) chain_weights_nonneg:
assumes \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \{ \text{RChainWeight}(w,c).\ c\in (\bigcup n\in \mathbb{N} _1.\ \text{Chains}(X,n,x,y))\} \subseteq \mathbb{R} ^+ \) using assms, chain_weight_nonnegThe chain_concat_weight1 lemma from the monoid1 context rewritten using notation used in the reals context:
lemma (in reals) rchain_concat_weight:
assumes \( w:X\times X\rightarrow \mathbb{R} \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \), \( c_1\in \text{Chains}(X,n_1,x,y) \), \( c_2\in \text{Chains}(X,n_2,y,z) \) and \( n_1\in nat \), \( n_2\in nat \)
shows \( \text{RChainWeight}(w, \text{Concat}(c_1,c_2)) = \text{RChainWeight}(w,c_1) + \text{RChainWeight}(w,c_2) \) using assms, monoid1_valid_in_group, chain_concat_weight1 unfolding RChainWeight_defIf the weight function is nonnegative then the chain distance is also nonnegative.
lemma (in reals) chain_dist_nneg:
assumes \( x\in X \), \( y\in X \) and \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \text{ChainDist}(X,w,x,y) \in \mathbb{R} ^+ \) using assms, chains_nempty(4), chain_weights_nonneg, nneg_has_nneg_inf unfolding ChainDist_defIf the weight function is nonnegative and zero on the diagonal then the chain distance obeys the triangle inequality.
lemma (in reals) chain_dist_tr_ineq:
assumes \( x\in X \), \( y\in X \), \( z\in X \) and \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \)
shows \( \text{ChainDist}(X,w,x,z) \leq \text{ChainDist}(X,w,x,y) + \text{ChainDist}(X,w,y,z) \)proofIf the weight function vanishes on the diagonal then the chain distance from \(x\in X\) to \(x\) is zero.
lemma (in reals) chain_dist_self_zero:
assumes \( x\in X \), \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( w\langle x,x\rangle = 0 \)
shows \( \text{ChainDist}(X,w,x,x) = 0 \)proofIf the weight function is symmetric then the chain distance from \(x\) to \(y\) is the same as from \(y\) to \(x\).
lemma (in reals) chain_dist_symm:
assumes \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( \forall x\in X.\ \forall y\in X.\ w\langle x,y\rangle = w\langle y,x\rangle \)
shows \( \text{ChainDist}(X,w,x,y) = \text{ChainDist}(X,w,y,x) \) using assms, basic_props(2), OrderedGroup_ZF_1_L4E, func1_1_L1B, monoid1_valid_in_group, weight_set_rev_eq unfolding RChainWeight_def, ChainDist_defGiven a weight function \(w\rightarrow X\times X\) we define the chain weight pseudometric as a function on \(X\times X\) that assigns the chain distance to any pair \(\langle x,y\rangle \in X\times X\).
definition (in reals)
\( \text{ChainWeightPMetric}(X,w) \equiv \{\langle p, \text{ChainDist}(X,w,\text{fst}(p),\text{snd}(p))\rangle .\ p \in X\times X\} \)
If \(w:X\times X\rightarrow\mathbb{R}^+\) is symmetric and vanishes on the diagonal of \(X\times X\) then the chain weight pseudometric derived from \(w\) is indeed a real-valued pseudometric.
theorem (in reals) chain_weight_pmetric:
assumes \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \), \( \forall x\in X.\ \forall y\in X.\ w\langle x,y\rangle = w\langle y,x\rangle \)
shows \( \text{IsApseudoMetric}( \text{ChainWeightPMetric}(X,w),X,\mathbb{R} ,Add,ROrd) \) using assms, ZF_fun_from_total, chain_dist_nneg, ZF_fun_from_tot_val1, chain_dist_self_zero, chain_dist_symm, chain_dist_tr_ineq unfolding ChainWeightPMetric_def, IsApseudoMetric_defThe metrization theorem states that a uniform space is pseudometrizable if and only if its uniformity has an countable base. In this sectiopn we show the key lemma that leads to the metrization theorem.
In the literature the metrization lemma (proven below) is usually stated as asserting existence of a pseudometric satisfying certain conditions. We prefer here a more explicit approach where we specify the construction of that pseudometric as a series of definitions, then show that the resulting function indeed satisfies the required conditions. The drawback of this approach is that we have to come up with names for the intermediate objects representing stages of that construction. Naming is hard, so as usual if the reader has an idea for better names please let me know.
We define the \( \text{DistWeight}(\mathcal{U} ,p) \) expression as equal to (real) \(0\) if \(p\in\bigcap_{n\in\mathbb{N}} \mathcal{U}_n\) or otherwise equal to \((\frac{1}{2})^n\), where \(n\) is the only natural number such that \(p\in\mathcal{U}_n\setminus\mathcal{U}_{n+1}\). To understand the context in which this definition is intended to be used suppose \(\mathcal{U}:\mathbb{N}\rightarrow\mathcal{P}(X\times X)\) is a sequence of subsets of \(X\times X\) such that \(\mathcal{U}_{n+1}\subseteq \mathcal{U}_n\) for \(n\in\mathbb{N}\). Then we have the identity \(\bigcup_{n\in \mathbb{N}} (\mathcal{U}_n\setminus\mathcal{U}_{n+1})=\mathcal{U}_0\setminus \bigcap_{n\in \mathbb{N}} \mathcal{U}_n\) and for any \(p\in\bigcup_{n\in \mathbb{N}} (\mathcal{U}_n\setminus \mathcal{U}_{n+1})\) there is exactly one \(n\in \mathbb{N}\) such that \(p\in \mathcal{U}_n\setminus \mathcal{U}_{n+1}\) This means that the set \(\{n\in n\in \mathbb{N}: p\in \mathcal{U}_n\setminus \mathcal{U}_{n+1}\}\) is a singleton and we can use the \(\bigcup \{ x\} = x\) identity to extract its only element.
definition (in reals)
\( \text{DistWeight}(\mathcal{U} ,p) \equiv \text{if }p \in (\bigcap n\in nat.\ \mathcal{U} (n))\text{ then } 0 \text{ else }( \frac{1}{2} )^{\bigcup \{n\in nat.\ p\in (\mathcal{U} (n)\setminus \mathcal{U} (n + 1))\}} \)
Suppose \(\mathcal{U}:\mathbb{N}\rightarrow \mathcal{P}(X\times X)\) is a sequence of subsets of \(X\times X\) such that \(\mathcal{U}_{n+1}\subseteq \mathcal{U}_n\) for all \(n\in\mathbb{N}\). Assume further that \(p\in\mathcal{U}_n\setminus \mathcal{U}_{n+1}\) for some \(n\in\mathbb{N}\). Then \( \text{DistWeight}(\mathcal{U} ,p) \) is equal to \(\left(\frac{1}{2}\right)^n\).
lemma (in reals) dist_weight_val:
assumes \( \mathcal{U} :nat\rightarrow Pow(X\times X) \), \( \forall i\in nat.\ \mathcal{U} (i + 1) \subseteq \mathcal{U} (i) \) and \( n\in nat \), \( p \in (\mathcal{U} (n)\setminus \mathcal{U} (n + 1)) \)
shows \( \text{DistWeight}(\mathcal{U} ,p) = ( \frac{1}{2} )^{n} \)proofassumes \( n\in nat \), \( c\in \text{Chains}(X,n,x,y) \), \( w:X\times X\rightarrow G \)
shows \( \text{ChainWeight}(w,c) \in G \)assumes \( n\in nat \), \( c\in \text{Chains}(X,n,x,y) \)
shows \( domain(c) - 1 = n \) and \( \text{ChainLinks}(c):n\rightarrow X\times X \)assumes \( n\in nat \), \( s:n\rightarrow L^+ \)
shows \( (\sum s) \in L^+ \)assumes \( n\in nat \), \( c\in \text{Chains}(X,n,x,y) \), \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \text{RChainWeight}(w,c) \in \mathbb{R} ^+ \)assumes \( n_1\in nat \), \( c_1\in \text{Chains}(X,n_1,x,y) \), \( n_2\in nat \), \( c_2\in \text{Chains}(X,n_2,y,z) \) and \( w:X\times X\rightarrow G \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \)
shows \( \text{ChainWeight}(w, \text{Concat}(c_1,c_2)) = \text{ChainWeight}(w,c_1)\oplus \text{ChainWeight}(w,c_2) \)assumes \( x\in X \) and \( y\in X \)
shows \( \{\langle 0,x\rangle ,\langle 1,y\rangle \} \in \text{Chains}(X,1,x,y) \), \( \{\langle 0,x\rangle ,\langle 1,y\rangle \}(0) = x \), \( \{\langle 0,x\rangle ,\langle 1,y\rangle \}(1) = y \), \( (\bigcup n\in nat\setminus \{0\}.\ \text{Chains}(X,n,x,y)) \neq \emptyset \)assumes \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \{ \text{RChainWeight}(w,c).\ c\in (\bigcup n\in \mathbb{N} _1.\ \text{Chains}(X,n,x,y))\} \subseteq \mathbb{R} ^+ \)assumes \( A\neq \emptyset \), \( A\subseteq \mathbb{R} ^+ \)
shows \( A \text{ has an infimum } \) and \( inf(A) \in \mathbb{R} ^+ \)assumes \( A\neq \emptyset \), \( B\neq \emptyset \)
shows \( \{b(x,y).\ \langle x,y\rangle \in A\times B\} \neq \emptyset \)assumes \( f:X\rightarrow Y \) and \( Y\subseteq Z \)
shows \( f:X\rightarrow Z \)assumes \( w:X\times X\rightarrow \mathbb{R} \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \), \( c_1\in \text{Chains}(X,n_1,x,y) \), \( c_2\in \text{Chains}(X,n_2,y,z) \) and \( n_1\in nat \), \( n_2\in nat \)
shows \( \text{RChainWeight}(w, \text{Concat}(c_1,c_2)) = \text{RChainWeight}(w,c_1) + \text{RChainWeight}(w,c_2) \)assumes \( n_1\in nat \), \( c_1\in \text{Chains}(X,n_1,x_1,y_1) \), \( n_2\in nat \), \( c_2\in \text{Chains}(X,n_2,x_2,y_2) \)
defines \( c_3 \equiv \text{Concat}(c_1,c_2) \)
shows \( c_3 \in \text{Chains}(X,n_1 + n_2 + 1,x_1,y_2) \), \( \text{ChainLinks}(c_3): (n_1 + n_2 + 1)\rightarrow X\times X \), \( \text{ChainLinks}(c_3) = \text{Concat}( \text{Append}( \text{ChainLinks}(c_1),\langle c_1(n_1),c_2(0)\rangle ), \text{ChainLinks}(c_2)) \), \( \text{ChainLinks}(c_3) = \text{Concat}( \text{Append}( \text{ChainLinks}(c_1),\langle y_1,x_2\rangle ), \text{ChainLinks}(c_2)) \)assumes \( A\neq \emptyset \), \( A\subseteq \mathbb{R} ^+ \)
shows \( A \text{ has an infimum } \) and \( inf(A) \in \mathbb{R} ^+ \)assumes \( \text{antisym}(r) \), \( \text{HasAnInfimum}(r,A) \), \( \text{HasAnInfimum}(r,B) \), \( A\subseteq B \)
shows \( \langle \text{Infimum}(r,B), \text{Infimum}(r,A)\rangle \in r \)assumes \( A\neq \emptyset \), \( A\subseteq \mathbb{R} ^+ \), \( B\neq \emptyset \), \( B\subseteq \mathbb{R} ^+ \)
shows \( \{x + y.\ \langle x,y\rangle \in A\times B\} \text{ has an infimum } \) and \( inf(A) + inf(B) = inf(\{x + y.\ \langle x,y\rangle \in A\times B\}) \)assumes \( x\in X \) and \( y\in X \)
shows \( \{\langle 0,x\rangle ,\langle 1,y\rangle \} \in \text{Chains}(X,1,x,y) \), \( \{\langle 0,x\rangle ,\langle 1,y\rangle \}(0) = x \), \( \{\langle 0,x\rangle ,\langle 1,y\rangle \}(1) = y \), \( (\bigcup n\in nat\setminus \{0\}.\ \text{Chains}(X,n,x,y)) \neq \emptyset \)assumes \( x\in X \), \( y\in X \), \( w:X\times X\rightarrow G \)
shows \( \text{ChainWeight}(w,\{\langle 0,x\rangle ,\langle 1,y\rangle \}) = w\langle x,y\rangle \)assumes \( B\subseteq L^+ \), \( 0 \in B \)
shows \( \text{HasAminimum}(r,B) \), \( \text{Minimum}(r,B) = 0 \) and \( \text{HasAnInfimum}(r,B) \), \( \text{Infimum}(r,B) = 0 \)assumes \( f \text{ is commutative on } G \), \( w:X\times X\rightarrow G \), \( \forall x\in X.\ \forall y\in X.\ w\langle x,y\rangle = w\langle y,x\rangle \)
shows \( \{ \text{ChainWeight}(w,c).\ c\in (\bigcup n\in nat\setminus \{0\}.\ \text{Chains}(X,n,x,y))\} = \) \( \{ \text{ChainWeight}(w,c).\ c\in (\bigcup n\in nat\setminus \{0\}.\ \text{Chains}(X,n,y,x))\} \)assumes \( \forall x\in X.\ b(x) \in Y \)
shows \( \{\langle x,b(x)\rangle .\ x\in X\} : X\rightarrow Y \)assumes \( x\in X \), \( y\in X \) and \( w:X\times X\rightarrow \mathbb{R} ^+ \)
shows \( \text{ChainDist}(X,w,x,y) \in \mathbb{R} ^+ \)assumes \( x\in X \)
shows \( \{\langle x,b(x)\rangle .\ x\in X\}(x)=b(x) \)assumes \( x\in X \), \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( w\langle x,x\rangle = 0 \)
shows \( \text{ChainDist}(X,w,x,x) = 0 \)assumes \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( \forall x\in X.\ \forall y\in X.\ w\langle x,y\rangle = w\langle y,x\rangle \)
shows \( \text{ChainDist}(X,w,x,y) = \text{ChainDist}(X,w,y,x) \)assumes \( x\in X \), \( y\in X \), \( z\in X \) and \( w:X\times X\rightarrow \mathbb{R} ^+ \), \( \forall x\in X.\ w\langle x,x\rangle = 0 \)
shows \( \text{ChainDist}(X,w,x,z) \leq \text{ChainDist}(X,w,x,y) + \text{ChainDist}(X,w,y,z) \)assumes \( \mathcal{U} :nat\rightarrow Pow(X) \), \( \forall n\in nat.\ \mathcal{U} (n + 1)\subseteq \mathcal{U} (n) \)
defines \( \mathcal{V} \equiv \{\langle i,\mathcal{U} (i)\setminus \mathcal{U} (i + 1)\rangle .\ i\in nat\} \)
shows \( \mathcal{V} :nat\rightarrow Pow(X) \), \( \text{IsDecreasingSeq}(Pow(X), \text{InclusionOn}(Pow(X)),\mathcal{U} ) \), \( \mathcal{V} \text{ is pairwise disjoint } \), \( (\bigcup n\in nat.\ \mathcal{U} (n)\setminus \mathcal{U} (n + 1)) = \mathcal{U} (0)\setminus (\bigcap n\in nat.\ \mathcal{U} (n)) \)assumes \( X:I\rightarrow Y \), \( X \text{ is pairwise disjoint } \), \( i\in I \), \( x\in X(i) \)
shows \( i = \bigcup \{j\in I.\ x\in X(j)\} \)