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