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 SeparationQuotient 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 SeparationQuotient X
.
As usual, this allows to turn SeparationQuotient
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 #
separationRel X : Set (X × X)
: the separation relationSeparatedSpace X
: a predicate class asserting thatX
is separatedSeparationQuotient X
: the maximal separated quotient ofX
.SeparationQuotient.lift f
: factors a mapf : X → Y
through the separation quotient ofX
.SeparationQuotient.map f
: turns a mapf : X → Y
into a map between the separation quotients ofX
andY
.
Main results #
separated_iff_t2
: the equivalence between being separated and being Hausdorff for uniform spaces.SeparationQuotient.uniformContinuous_lift
: factoring a uniformly continuous map through the separation quotient gives a uniformly continuous map.SeparationQuotient.uniformContinuous_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 separationSetoid
is not declared as a global instance.
It is made a local instance while building the theory of SeparationQuotient
.
The factored map SeparationQuotient.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 #
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
- separationRel α = Filter.ker (uniformity α)
Instances For
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
- Uniformity.term𝓢 = Lean.ParserDescr.node `Uniformity.term𝓢 1024 (Lean.ParserDescr.symbol "𝓢")
Instances For
- out : separationRel α = idRel
The separation relation is equal to the diagonal
idRel
.
A uniform space is separated if its separation relation is trivial (each point is related only to itself).
Instances
Equations
Separation quotient #
The separation relation of a uniform space seen as a setoid.
Equations
- UniformSpace.separationSetoid α = { r := fun x y => (x, y) ∈ separationRel α, iseqv := (_ : Equivalence fun x y => (x, y) ∈ separationRel α) }
Instances For
Equations
- One or more equations did not get rendered due to their size.
The maximal separated quotient of a uniform space α
.
Equations
Instances For
Equations
- UniformSpace.SeparationQuotient.instUniformSpaceSeparationQuotient = UniformSpace.separationSetoid.uniformSpace
Equations
- (_ : SeparatedSpace (UniformSpace.SeparationQuotient α)) = (_ : SeparatedSpace (Quotient (UniformSpace.separationSetoid α)))
Equations
- UniformSpace.SeparationQuotient.instInhabitedSeparationQuotient = inferInstanceAs (Inhabited (Quotient (UniformSpace.separationSetoid α)))
Factoring functions to a separated space through the separation quotient.
Equations
- UniformSpace.SeparationQuotient.lift f = if h : UniformContinuous f then Quotient.lift f (_ : ∀ (x x_1 : α), x ≈ x_1 → f x = f x_1) else fun x => f (Nonempty.some (_ : Nonempty α))
Instances For
The separation quotient functor acting on functions.
Equations
- UniformSpace.SeparationQuotient.map f = UniformSpace.SeparationQuotient.lift (Quotient.mk' ∘ f)