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.
Equations
- Compactum = (CategoryTheory.ofTypeMonad Ultrafilter).Algebra
Instances For
The forgetful functor to Type*
Equations
Instances For
Equations
Equations
- Compactum.instCreatesLimitsForget = inferInstance
The "free" Compactum functor.
Equations
Instances For
Equations
- Compactum.instCoeSortType = { coe := fun (X : Compactum) => X.A }
Equations
The structure map for a compactum, essentially sending an ultrafilter to its limit.
Equations
- X.str = X.a
Instances For
The inclusion of X
into Ultrafilter X
.
Equations
- X.incl = (CategoryTheory.ofTypeMonad Ultrafilter).η.app X.1
Instances For
Equations
- Compactum.instTopologicalSpaceA = { IsOpen := fun (U : Set X.A) => ∀ (F : Ultrafilter X.A), X.str F ∈ U → U ∈ F, isOpen_univ := ⋯, isOpen_inter := ⋯, isOpen_sUnion := ⋯ }
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 = { A := X, a := Ultrafilter.lim, unit := ⋯, assoc := ⋯ }
Instances For
Any continuous map between Compacta is a morphism of compacta.
Equations
- Compactum.homOfContinuous f cont = { f := f, h := ⋯ }
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
The functor compactumToCompHaus
is faithful.
Equations
This definition is used to prove essential surjectivity of compactumToCompHaus
.
Equations
- compactumToCompHaus.isoOfTopologicalSpace = { hom := { toFun := id, continuous_toFun := ⋯ }, inv := { toFun := id, continuous_toFun := ⋯ }, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The functor compactumToCompHaus
is essentially surjective.
Equations
The functor compactumToCompHaus
is an equivalence of categories.
Equations
The forgetful functors of Compactum
and CompHaus
are compatible via
compactumToCompHaus
.
Equations
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- Profinite.forgetCreatesLimits = inferInstance