Compacta and Compact Hausdorff Spaces #
Recall that, given a monad M
on Type*
, an algebra for M
consists of the following data:
- A type
X : Type*
- A "structure" map
M X → X
. This data must also satisfy a distributivity and unit axiom, and algebras forM
form a category in an evident way.
See the file CategoryTheory.Monad.Algebra
for a general version, as well as the following link.
https://ncatlab.org/nlab/show/monad
This file proves the equivalence between the category of compact Hausdorff topological spaces and the category of algebras for the ultrafilter monad.
Notation: #
Here are the main objects introduced in this file.
Compactum
is the type of compacta, which we define as algebras for the ultrafilter monad.compactumToCompHaus
is the functorCompactum ⥤ CompHaus
. HereCompHaus
is the usual category of compact Hausdorff spaces.compactumToCompHaus.isEquivalence
is a term of typeIsEquivalence compactumToCompHaus
.
The proof of this equivalence is a bit technical. But the idea is quite simply that the structure
map Ultrafilter X → X
for an algebra X
of the ultrafilter monad should be considered as the map
sending an ultrafilter to its limit in X
. The topology on X
is then defined by mimicking the
characterization of open sets in terms of ultrafilters.
Any X : Compactum
is endowed with a coercion to Type*
, as well as the following instances:
TopologicalSpace X
.CompactSpace X
.T2Space X
.
Any morphism f : X ⟶ Y
of is endowed with a coercion to a function X → Y
, which is shown to
be continuous in continuous_of_hom
.
The function Compactum.ofTopologicalSpace
can be used to construct a Compactum
from a
topological space which satisfies CompactSpace
and T2Space
.
We also add wrappers around structures which already exist. Here are the main ones, all in the
Compactum
namespace:
forget : Compactum ⥤ Type*
is the forgetful functor, which induces aConcreteCategory
instance forCompactum
.free : Type* ⥤ Compactum
is the left adjoint toforget
, and the adjunction is inadj
.str : Ultrafilter X → X
is the structure map forX : Compactum
. The notationX.str
is preferred.join : Ultrafilter (Ultrafilter X) → Ultrafilter X
is the monadic join forX : Compactum
. Again, the notationX.join
is preferred.incl : X → Ultrafilter X
is the unit forX : Compactum
. The notationX.incl
is preferred.
References #
- E. Manes, Algebraic Theories, Graduate Texts in Mathematics 26, Springer-Verlag, 1976.
- https://ncatlab.org/nlab/show/ultrafilter
The type Compactum
of Compacta, defined as algebras for the ultrafilter monad.
Instances For
The forgetful functor to Type*
Instances For
Equations
- Compactum.instCreatesLimitsCompactumInstCompactumCategoryTypeTypesForget = let_fun this := inferInstance; this
The "free" Compactum functor.
Instances For
Equations
- Compactum.instCoeSortCompactumType = { coe := fun (X : Compactum) => X.A }
The structure map for a compactum, essentially sending an ultrafilter to its limit.
Equations
- Compactum.str X = X.a
Instances For
The monadic join.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : CompactSpace X.A) = (_ : CompactSpace X.A)
The structure map of a compactum actually computes limits.
Any morphism of compacta is continuous.
Given any compact Hausdorff space, we construct a Compactum.
Equations
- Compactum.ofTopologicalSpace X = CategoryTheory.Monad.Algebra.mk X Ultrafilter.lim
Instances For
Any continuous map between Compacta is a morphism of compacta.
Equations
Instances For
The functor functor from Compactum to CompHaus.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor compactumToCompHaus
is full.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor compactumToCompHaus
is faithful.
This definition is used to prove essential surjectivity of compactumToCompHaus
.
Equations
- compactumToCompHaus.isoOfTopologicalSpace = CategoryTheory.Iso.mk (ContinuousMap.mk id) (ContinuousMap.mk id)
Instances For
The functor compactumToCompHaus
is essentially surjective.
The functor compactumToCompHaus
is an equivalence of categories.
Equations
- One or more equations did not get rendered due to their size.
The forgetful functors of Compactum
and CompHaus
are compatible via
compactumToCompHaus
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Profinite.forgetCreatesLimits = let_fun this := inferInstance; this