The category of Profinite Types #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
We construct the category of profinite topological spaces, often called profinite sets -- perhaps they could be called profinite types in Lean.
The type of profinite topological spaces is called Profinite
. It has a category
instance and is a fully faithful subcategory of Top
. The fully faithful functor
is called Profinite_to_Top
.
Implementation notes #
A profinite type is defined to be a topological space which is compact, Hausdorff and totally disconnected.
TODO #
- Link to category of projective limits of finite discrete sets.
- finite coproducts
- Clausen/Scholze topology on the category
Profinite
.
Tags #
profinite
- to_CompHaus : CompHaus
- is_totally_disconnected : totally_disconnected_space ↥(self.to_CompHaus)
The type of profinite topological spaces.
Instances for Profinite
Construct a term of Profinite
from a type endowed with the structure of a
compact, Hausdorff and totally disconnected topological space.
Equations
- Profinite.of X = Profinite.mk (CompHaus.mk {α := X, str := _inst_1})
Instances for Profinite.of
Equations
- Profinite.inhabited = {default := Profinite.of pempty Profinite.inhabited._proof_2}
Equations
- Profinite.has_coe_to_sort = {coe := λ (X : Profinite), ↥(X.to_CompHaus)}
(Implementation) The object part of the connected_components functor from compact Hausdorff spaces to Profinite spaces, given by quotienting a space by its connected components. See: https://stacks.math.columbia.edu/tag/0900
Equations
(Implementation) The bijection of homsets to establish the reflective adjunction of Profinite spaces in compact Hausdorff spaces.
Equations
- Profinite.to_CompHaus_equivalence X Y = {to_fun := λ (f : X.to_Profinite_obj ⟶ Y), continuous_map.comp f {to_fun := quotient.mk' (connected_component_setoid ↥X), continuous_to_fun := _}, inv_fun := λ (g : X ⟶ Profinite_to_CompHaus.obj Y), {to_fun := continuous.connected_components_lift _, continuous_to_fun := _}, left_inv := _, right_inv := _}
The connected_components functor from compact Hausdorff spaces to profinite spaces, left adjoint to the inclusion functor.
Equations
- CompHaus.to_Profinite = category_theory.adjunction.left_adjoint_of_equiv Profinite.to_CompHaus_equivalence CompHaus.to_Profinite._proof_1
Finite types are given the discrete topology.
Equations
- A.bot_topology = ⊥
The natural functor from Fintype
to Profinite
, endowing a finite type with the
discrete topology.
Equations
- Fintype.to_Profinite = {obj := λ (A : Fintype), Profinite.of ↥A, map := λ (_x _x_1 : Fintype) (f : _x ⟶ _x_1), {to_fun := f, continuous_to_fun := _}, map_id' := Fintype.to_Profinite._proof_11, map_comp' := Fintype.to_Profinite._proof_12}
An explicit limit cone for a functor F : J ⥤ Profinite
, defined in terms of
Top.limit_cone
.
Equations
- Profinite.limit_cone F = {X := {to_CompHaus := (CompHaus.limit_cone (F ⋙ Profinite_to_CompHaus)).X, is_totally_disconnected := _}, π := {app := (CompHaus.limit_cone (F ⋙ Profinite_to_CompHaus)).π.app, naturality' := _}}
The limit cone Profinite.limit_cone F
is indeed a limit cone.
Equations
- Profinite.limit_cone_is_limit F = {lift := λ (S : category_theory.limits.cone F), (CompHaus.limit_cone_is_limit (F ⋙ Profinite_to_CompHaus)).lift (Profinite_to_CompHaus.map_cone S), fac' := _, uniq' := _}
The adjunction between CompHaus.to_Profinite and Profinite.to_CompHaus
Equations
- Profinite.to_Profinite_adj_to_CompHaus = category_theory.adjunction.adjunction_of_equiv_left Profinite.to_CompHaus_equivalence CompHaus.to_Profinite._proof_1
The category of profinite sets is reflective in the category of compact hausdroff spaces
Any morphism of profinite spaces is a closed map.
Any continuous bijection of profinite spaces induces an isomorphism.
Any continuous bijection of profinite spaces induces an isomorphism.
Equations
- Profinite.iso_of_bijective f bij = let _inst : category_theory.is_iso f := _ in category_theory.as_iso f
Construct an isomorphism from a homeomorphism.
Equations
- Profinite.iso_of_homeo f = {hom := {to_fun := ⇑f, continuous_to_fun := _}, inv := {to_fun := ⇑(f.symm), continuous_to_fun := _}, hom_inv_id' := _, inv_hom_id' := _}
The equivalence between isomorphisms in Profinite
and homeomorphisms
of topological spaces.
Equations
- Profinite.iso_equiv_homeo = {to_fun := Profinite.homeo_of_iso Y, inv_fun := Profinite.iso_of_homeo Y, left_inv := _, right_inv := _}