Metrizable uniform spaces #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
In this file we prove that a uniform space with countably generated uniformity filter is
pseudometrizable: there exists a pseudo_metric_space
structure that generates the same uniformity.
The proof follows Sergey Melikhov, Metrizable uniform spaces.
Main definitions #
-
pseudo_metric_space.of_prenndist
: given a functiond : X → X → ℝ≥0
such thatd x x = 0
andd x y = d y x
for allx y : X
, constructs the maximal pseudo metric space structure such thatnndist x y ≤ d x y
for allx y : X
. -
uniform_space.pseudo_metric_space
: given a uniform spaceX
with countably generated𝓤 X
, constructs apseudo_metric_space X
instance that is compatible with the uniform space structure. -
uniform_space.metric_space
: given a T₀ uniform spaceX
with countably generated𝓤 X
, constructs ametric_space X
instance that is compatible with the uniform space structure.
Main statements #
-
uniform_space.metrizable_uniformity
: ifX
is a uniform space with countably generated𝓤 X
, then there exists apseudo_metric_space
structure that is compatible with thisuniform_space
structure. Useuniform_space.pseudo_metric_space
oruniform_space.metric_space
instead. -
uniform_space.pseudo_metrizable_space
: a uniform space with countably generated𝓤 X
is pseudo metrizable. -
uniform_space.metrizable_space
: a T₀ uniform space with countably generated𝓤 X
is metrizable. This is not an instance to avoid loops.
Tags #
metrizable space, uniform space
The maximal pseudo metric space structure on X
such that dist x y ≤ d x y
for all x y
,
where d : X → X → ℝ≥0
is a function such that d x x = 0
and d x y = d y x
for all x
, y
.
Equations
- pseudo_metric_space.of_prenndist d dist_self dist_comm = {to_has_dist := {dist := λ (x y : X), ↑⨅ (l : list X), (list.zip_with d (x :: l) (l ++ [y])).sum}, dist_self := _, dist_comm := _, dist_triangle := _, edist := λ (x y : X), ↑⟨(λ (x y : X), ↑⨅ (l : list X), (list.zip_with d (x :: l) (l ++ [y])).sum) x y, _⟩, edist_dist := _, to_uniform_space := uniform_space_of_dist (λ (x y : X), ↑⨅ (l : list X), (list.zip_with d (x :: l) (l ++ [y])).sum) _ _ _, uniformity_dist := _, to_bornology := bornology.of_dist (λ (x y : X), ↑⨅ (l : list X), (list.zip_with d (x :: l) (l ++ [y])).sum) _ _ _, cobounded_sets := _}
Consider a function d : X → X → ℝ≥0
such that d x x = 0
and d x y = d y x
for all x
,
y
. Let dist
be the largest pseudometric distance such that dist x y ≤ d x y
, see
pseudo_metric_space.of_prenndist
. Suppose that d
satisfies the following triangle-like
inequality: d x₁ x₄ ≤ 2 * max (d x₁ x₂, d x₂ x₃, d x₃ x₄)
. Then d x y ≤ 2 * dist x y
for all
x
, y
.
If X
is a uniform space with countably generated uniformity filter, there exists a
pseudo_metric_space
structure compatible with the uniform_space
structure. Use
uniform_space.pseudo_metric_space
or uniform_space.metric_space
instead.
A pseudo_metric_space
instance compatible with a given uniform_space
structure.
Equations
A metric_space
instance compatible with a given uniform_space
structure.
A uniform space with countably generated 𝓤 X
is pseudo metrizable.
A T₀ uniform space with countably generated 𝓤 X
is metrizable. This is not an instance to
avoid loops.