mathlib3 documentation

topology.uniform_space.completion

Hausdorff completions of uniform spaces #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

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) coe : α → 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 ∘ coe. 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 coe 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:

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.

def Cauchy (α : Type u) [uniform_space α] :

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
Instances for Cauchy
def Cauchy.gen {α : Type u} [uniform_space α] (s : set × α)) :

The pairs of Cauchy filters generated by a set.

Equations
@[protected, instance]
Equations
theorem Cauchy.mem_uniformity {α : Type u} [uniform_space α] {s : set (Cauchy α × Cauchy α)} :
s uniformity (Cauchy α) (t : set × α)) (H : t uniformity α), Cauchy.gen t s
theorem Cauchy.mem_uniformity' {α : Type u} [uniform_space α] {s : set (Cauchy α × Cauchy α)} :
s uniformity (Cauchy α) (t : set × α)) (H : t uniformity α), (f g : Cauchy α), t f.val.prod g.val (f, g) s
def Cauchy.pure_cauchy {α : Type u} [uniform_space α] (a : α) :

Embedding of α into its completion Cauchy α

Equations
@[protected, instance]
@[protected, instance]
def Cauchy.nonempty {α : Type u} [uniform_space α] [h : nonempty α] :
noncomputable def Cauchy.extend {α : Type u} [uniform_space α] {β : Type v} [uniform_space β] (f : α β) :
Cauchy α β

Extend a uniformly continuous function α → β to a function Cauchy α → β. Outputs junk when f is not uniformly continuous.

Equations
theorem Cauchy.extend_pure_cauchy {α : Type u} [uniform_space α] {β : Type v} [uniform_space β] [separated_space β] {f : α β} (hf : uniform_continuous f) (a : α) :
theorem Cauchy.Cauchy_eq {α : Type u_1} [inhabited α] [uniform_space α] [complete_space α] [separated_space α] {f g : Cauchy α} :
def uniform_space.completion (α : Type u_1) [uniform_space α] :
Type u_1

Hausdorff completion of α

Equations
Instances for uniform_space.completion
@[protected, instance]

Automatic coercion from α to its completion. Not always injective.

Equations

The Haudorff completion as an abstract completion.

Equations
theorem uniform_space.completion.dense_range_coe₂ {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] :
dense_range (λ (x : α × β), ((x.fst), (x.snd)))
theorem uniform_space.completion.dense_range_coe₃ {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {γ : Type u_3} [uniform_space γ] :
dense_range (λ (x : α × β × γ), ((x.fst), (x.snd.fst), (x.snd.snd)))
theorem uniform_space.completion.induction_on {α : Type u_1} [uniform_space α] {p : uniform_space.completion α Prop} (a : uniform_space.completion α) (hp : is_closed {a : uniform_space.completion α | p a}) (ih : (a : α), p a) :
p a
theorem uniform_space.completion.ext {α : Type u_1} [uniform_space α] {Y : Type u_2} [topological_space Y] [t2_space Y] {f g : uniform_space.completion α Y} (hf : continuous f) (hg : continuous g) (h : (a : α), f a = g a) :
f = g
theorem uniform_space.completion.ext' {α : Type u_1} [uniform_space α] {Y : Type u_2} [topological_space Y] [t2_space Y] {f g : uniform_space.completion α Y} (hf : continuous f) (hg : continuous g) (h : (a : α), f a = g a) (a : uniform_space.completion α) :
f a = g a
@[protected]
noncomputable def uniform_space.completion.extension {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] (f : α β) :

"Extension" to the completion. It is defined for any map f but returns an arbitrary constant value if f is not uniformly continuous

Equations
@[simp]
@[protected]
noncomputable def uniform_space.completion.map {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] (f : α β) :

Completion functor acting on morphisms

Equations
@[simp]
theorem uniform_space.completion.map_coe {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {f : α β} (hf : uniform_continuous f) (a : α) :
@[protected]
noncomputable def uniform_space.completion.extension₂ {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {γ : Type u_3} [uniform_space γ] (f : α β γ) :

Extend a two variable map to the Hausdorff completions.

Equations
@[simp]
theorem uniform_space.completion.extension₂_coe_coe {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {γ : Type u_3} [uniform_space γ] {f : α β γ} [separated_space γ] (hf : uniform_continuous₂ f) (a : α) (b : β) :
theorem uniform_space.completion.continuous_map₂ {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {γ : Type u_3} [uniform_space γ] {δ : Type u_4} [topological_space δ] {f : α β γ} {a : δ uniform_space.completion α} {b : δ uniform_space.completion β} (ha : continuous a) (hb : continuous b) :
continuous (λ (d : δ), uniform_space.completion.map₂ f (a d) (b d))
theorem uniform_space.completion.map₂_coe_coe {α : Type u_1} [uniform_space α] {β : Type u_2} [uniform_space β] {γ : Type u_3} [uniform_space γ] (a : α) (b : β) (f : α β γ) (hf : uniform_continuous₂ f) :