Hausdorff completions of uniform spaces
The goal is to construct a left-adjoint to the inclusion of complete Hausdorff uniform spaces
into all uniform spaces. Any uniform space α
gets a completion completion α
and a morphism
(ie. uniformly continuous map) completion : α → completion α
which solves the universal
mapping problem of factorizing morphisms from α
to any complete Hausdorff uniform space β
.
It means any uniformly continuous f : α → β
gives rise to a unique morphism
completion.extension f : completion α → β
such that f = completion.extension f ∘ completion α
.
Actually completion.extension f
is defined for all maps from α
to β
but it has the desired
properties only if f
is uniformly continuous.
Beware that completion α
is not injective if α
is not Hausdorff. But its image is always
dense. The adjoint functor acting on morphisms is then constructed by the usual abstract nonsense.
For every uniform spaces α
and β
, it turns f : α → β
into a morphism
completion.map f : completion α → completion β
such that
coe ∘ f = (completion.map f) ∘ coe
provided f
is uniformly continuous. This construction is compatible with composition.
In this file we introduce the following concepts:
Cauchy α
the uniform completion of the uniform spaceα
(using Cauchy filters). These are not minimal filters.completion α := quotient (separation_setoid (Cauchy α))
the Hausdorff completion.
References
This formalization is mostly based on N. Bourbaki: General Topology I. M. James: Topologies and Uniformities From a slightly different perspective in order to reuse material in topology.uniform_space.basic.
Space of Cauchy filters
This is essentially the completion of a uniform space. The embeddings are the neighbourhood filters. This space is not minimal, the separated uniform space (i.e. quotiented on the intersection of all entourages) is necessary for this.
Equations
- Cauchy.uniform_space = uniform_space.of_core {uniformity := (uniformity α).lift' Cauchy.gen, refl := _, symm := _, comp := _}
Embedding of α
into its completion
Equations
- Cauchy.pure_cauchy a = ⟨has_pure.pure a, _⟩
Equations
- Cauchy.complete_space = _
- _ = _
- _ = _
Equations
Equations
Equations
- Cauchy.extend f = ite (uniform_continuous f) (Cauchy.dense_inducing_pure_cauchy.extend f) (λ (x : Cauchy α), f (inhabited.default α))
Hausdorff completion of α
Equations
Equations
Equations
- _ = _
Equations
- _ = _
Equations
Automatic coercion from α
to its completion. Not always injective.
Equations
Equations
- uniform_space.completion.cpkg = {space := uniform_space.completion α _inst_4, coe := coe coe_to_lift, uniform_struct := uniform_space.completion.uniform_space α _inst_4, complete := _, separation := _, uniform_inducing := _, dense := _}
Equations
"Extension" to the completion. It is defined for any map f
but
returns an arbitrary constant value if f
is not uniformly continuous
Completion functor acting on morphisms