# mathlibdocumentation

topology.uniform_space.separation

# Hausdorff properties of uniform spaces. Separation quotient. #

This file studies uniform spaces whose underlying topological spaces are separated (also known as Hausdorff or T₂). This turns out to be equivalent to asking that the intersection of all entourages is the diagonal only. This condition actually implies the stronger separation property that the space is T₃, hence those conditions are equivalent for topologies coming from a uniform structure.

More generally, the intersection 𝓢 X of all entourages of X, which has type set (X × X) is an equivalence relation on X. Points which are equivalent under the relation are basically undistinguishable from the point of view of the uniform structure. For instance any uniformly continuous function will send equivalent points to the same value.

The quotient separation_quotient X of X by 𝓢 X has a natural uniform structure which is separated, and satisfies a universal property: every uniformly continuous function from X to a separated uniform space uniquely factors through separation_quotient X. As usual, this allows to turn separation_quotient into a functor (but we don't use the category theory library in this file).

These notions admit relative versions, one can ask that s : set X is separated, this is equivalent to asking that the uniform structure induced on s is separated.

## Main definitions #

• separation_relation X : set (X × X): the separation relation
• separated_space X: a predicate class asserting that X is separated
• is_separated s: a predicate asserting that s : set X is separated
• separation_quotient X: the maximal separated quotient of X.
• separation_quotient.lift f: factors a map f : X → Y through the separation quotient of X.
• separation_quotient.map f: turns a map f : X → Y into a map between the separation quotients of X and Y.

## Main results #

• separated_iff_t2: the equivalence between being separated and being Hausdorff for uniform spaces.
• separation_quotient.uniform_continuous_lift: factoring a uniformly continuous map through the separation quotient gives a uniformly continuous map.
• separation_quotient.uniform_continuous_map: maps induced between separation quotients are uniformly continuous.

## Notations #

Localized in uniformity, we have the notation 𝓢 X for the separation relation on a uniform space X,

## Implementation notes #

The separation setoid separation_setoid is not declared as a global instance. It is made a local instance while building the theory of separation_quotient. The factored map separation_quotient.lift f is defined without imposing any condition on f, but returns junk if f is not uniformly continuous (constant junk hence it is always uniformly continuous).

### Separated uniform spaces #

@[protected]
def separation_rel (α : Type u) [u : uniform_space α] :
set × α)

The separation relation is the intersection of all entourages. Two points which are related by the separation relation are "indistinguishable" according to the uniform structure.

Equations
theorem separated_equiv {α : Type u}  :
equivalence (λ (x y : α), (x, y)
theorem filter.has_basis.mem_separation_rel {α : Type u} {ι : Sort u_1} {p : ι → Prop} {s : ι → set × α)} (h : (uniformity α).has_basis p s) {a : α × α} :
∀ (i : ι), p ia s i
@[class]
structure separated_space (α : Type u)  :
Prop
• out :

A uniform space is separated if its separation relation is trivial (each point is related only to itself).

Instances of this typeclass
theorem separated_space_iff {α : Type u}  :
theorem separated_def {α : Type u}  :
∀ (x y : α), (∀ (r : set × α)), r (x, y) r)x = y
theorem separated_def' {α : Type u}  :
∀ (x y : α), x y(∃ (r : set × α)) (H : r , (x, y) r)
theorem eq_of_uniformity {α : Type u_1} {x y : α} (h : ∀ {V : set × α)}, V (x, y) V) :
x = y
theorem eq_of_uniformity_basis {α : Type u_1} {ι : Type u_2} {p : ι → Prop} {s : ι → set × α)} (hs : (uniformity α).has_basis p s) {x y : α} (h : ∀ {i : ι}, p i(x, y) s i) :
x = y
theorem eq_of_forall_symmetric {α : Type u_1} {x y : α} (h : ∀ {V : set × α)}, V (x, y) V) :
x = y
theorem id_rel_sub_separation_relation (α : Type u_1)  :
theorem separation_rel_comap {α : Type u} {β : Type v} {f : α → β} (h : _inst_1 = _inst_2) :
=
@[protected]
theorem filter.has_basis.separation_rel {α : Type u} {ι : Sort u_1} {p : ι → Prop} {s : ι → set × α)} (h : (uniformity α).has_basis p s) :
= ⋂ (i : ι) (hi : p i), s i
theorem is_closed_separation_rel {α : Type u}  :
theorem separated_iff_t2 {α : Type u}  :
@[protected, instance]
def separated_t3 {α : Type u}  :
theorem is_closed_of_spaced_out {α : Type u} {V₀ : set × α)} (V₀_in : V₀ ) {s : set α} (hs : s.pairwise (λ (x y : α), (x, y) V₀)) :
theorem is_closed_range_of_spaced_out {α : Type u} {ι : Type u_1} {V₀ : set × α)} (V₀_in : V₀ ) {f : ι → α} (hf : pairwise (λ (x y : ι), (f x, f y) V₀)) :

### Separated sets #

def is_separated {α : Type u} (s : set α) :
Prop

A set s in a uniform space α is separated if the separation relation 𝓢 α induces the trivial relation on s.

Equations
• = ∀ (x : α), x s∀ (y : α), y s(x, y) x = y
theorem is_separated_def {α : Type u} (s : set α) :
∀ (x : α), x s∀ (y : α), y s(x, y) x = y
theorem is_separated_def' {α : Type u} (s : set α) :
theorem is_separated.mono {α : Type u} {s t : set α} (hs : is_separated s) (hts : t s) :
theorem univ_separated_iff {α : Type u}  :
theorem is_separated_of_separated_space {α : Type u} (s : set α) :
theorem is_separated_iff_induced {α : Type u} {s : set α} :
theorem eq_of_uniformity_inf_nhds_of_is_separated {α : Type u} {s : set α} (hs : is_separated s) {x y : α} :
x sy scluster_pt (x, y) (uniformity α)x = y
theorem eq_of_uniformity_inf_nhds {α : Type u} {x y : α} :
cluster_pt (x, y) (uniformity α)x = y

### Separation quotient #

def uniform_space.separation_setoid (α : Type u)  :

The separation relation of a uniform space seen as a setoid.

Equations
theorem uniform_space.uniformity_quotient {α : Type u}  :
= filter.map (λ (p : α × α), (p.fst, p.snd)) (uniformity α)
theorem uniform_space.uniform_continuous_quotient {α : Type u} {β : Type v} {f : → β} (hf : uniform_continuous (λ (x : α), f x)) :
theorem uniform_space.uniform_continuous_quotient_lift {α : Type u} {β : Type v} {f : α → β} {h : ∀ (a b : α), (a, b) f a = f b} (hf : uniform_continuous f) :
uniform_continuous (λ (a : , a)
theorem uniform_space.uniform_continuous_quotient_lift₂ {α : Type u} {β : Type v} {γ : Type w} {f : α → β → γ} {h : ∀ (a : α) (c : β) (b : α) (d : β), (a, b) (c, d) f a c = f b d} (hf : uniform_continuous (λ (p : α × β), f p.fst p.snd)) :
uniform_continuous (λ (p : , p.fst p.snd)
theorem uniform_space.comap_quotient_le_uniformity {α : Type u}  :
filter.comap (λ (p : α × α), (p.fst, p.snd))
theorem uniform_space.comap_quotient_eq_uniformity {α : Type u}  :
filter.comap (λ (p : α × α), (p.fst, p.snd)) =
@[protected, instance]
def uniform_space.separated_separation {α : Type u}  :
theorem uniform_space.separated_of_uniform_continuous {α : Type u} {β : Type v} {f : α → β} {x y : α} (H : uniform_continuous f) (h : x y) :
f x f y
theorem uniform_space.eq_of_separated_of_uniform_continuous {α : Type u} {β : Type v} {f : α → β} {x y : α} (H : uniform_continuous f) (h : x y) :
f x = f y
theorem is_separated.eq_of_uniform_continuous {α : Type u} {β : Type v} {f : α → β} {x y : α} {s : set β} (hs : is_separated s) (hxs : f x s) (hys : f y s) (H : uniform_continuous f) (h : x y) :
f x = f y
def uniform_space.separation_quotient (α : Type u_1)  :
Type u_1

The maximal separated quotient of a uniform space α.

Equations
Instances for uniform_space.separation_quotient
@[protected, instance]
Equations
@[protected, instance]
@[protected, instance]
Equations
noncomputable def uniform_space.separation_quotient.lift {α : Type u} {β : Type v} (f : α → β) :

Factoring functions to a separated space through the separation quotient.

Equations
• = (λ (h : , _) (λ (h : (x : , f _.some)
theorem uniform_space.separation_quotient.lift_mk {α : Type u} {β : Type v} {f : α → β} (h : uniform_continuous f) (a : α) :
theorem uniform_space.separation_quotient.uniform_continuous_lift {α : Type u} {β : Type v} (f : α → β) :
noncomputable def uniform_space.separation_quotient.map {α : Type u} {β : Type v} (f : α → β) :

The separation quotient functor acting on functions.

Equations
theorem uniform_space.separation_quotient.map_mk {α : Type u} {β : Type v} {f : α → β} (h : uniform_continuous f) (a : α) :
theorem uniform_space.separation_quotient.uniform_continuous_map {α : Type u} {β : Type v} (f : α → β) :
theorem uniform_space.separation_quotient.map_unique {α : Type u} {β : Type v} {f : α → β} (hf : uniform_continuous f) (comm : = ) :
theorem uniform_space.separation_quotient.map_comp {α : Type u} {β : Type v} {γ : Type w} {f : α → β} {g : β → γ} (hf : uniform_continuous f) (hg : uniform_continuous g) :
theorem uniform_space.separation_prod {α : Type u} {β : Type v} {a₁ a₂ : α} {b₁ b₂ : β} :
(a₁, b₁) (a₂, b₂) a₁ a₂ b₁ b₂
@[protected, instance]
def uniform_space.separated.prod {α : Type u} {β : Type v}  :
theorem is_separated.prod {α : Type u} {β : Type v} {s : set α} {t : set β} (hs : is_separated s) (ht : is_separated t) :