Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Merged by Bors] - feat(topology/category/Profinite): Profinite_to_Top creates limits. #7070

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 9 additions & 3 deletions src/topology/category/CompHaus.lean
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ Authors: Adam Topaz, Bhavik Mehta
import category_theory.adjunction.reflective
import topology.category.Top
import topology.stone_cech
import category_theory.monad.limits

/-!

Expand All @@ -26,6 +27,8 @@ introduced.

-/

universe u

open category_theory

/-- The type of Compact Hausdorff topological spaces. -/
Expand Down Expand Up @@ -64,7 +67,7 @@ end CompHaus

/-- The fully faithful embedding of `CompHaus` in `Top`. -/
@[simps {rhs_md := semireducible}, derive [full, faithful]]
def CompHaus_to_Top : CompHaus ⥤ Top := induced_functor _
def CompHaus_to_Top : CompHaus.{u} ⥤ Top.{u} := induced_functor _

/--
(Implementation) The object part of the compactification functor from topological spaces to
Expand Down Expand Up @@ -105,8 +108,8 @@ noncomputable def stone_cech_equivalence (X : Top) (Y : CompHaus) :
The Stone-Cech compactification functor from topological spaces to compact Hausdorff spaces,
left adjoint to the inclusion functor.
-/
noncomputable def Top_to_CompHaus : Top ⥤ CompHaus :=
adjunction.left_adjoint_of_equiv stone_cech_equivalence (λ _ _ _ _ _, rfl)
noncomputable def Top_to_CompHaus : Top.{u} ⥤ CompHaus.{u} :=
adjunction.left_adjoint_of_equiv stone_cech_equivalence.{u u} (λ _ _ _ _ _, rfl)

lemma Top_to_CompHaus_obj (X : Top) : ↥(Top_to_CompHaus.obj X) = stone_cech X :=
rfl
Expand All @@ -116,3 +119,6 @@ The category of compact Hausdorff spaces is reflective in the category of topolo
-/
noncomputable instance CompHaus_to_Top.reflective : reflective CompHaus_to_Top :=
{ to_is_right_adjoint := ⟨Top_to_CompHaus, adjunction.adjunction_of_equiv_left _ _⟩ }

noncomputable instance CompHaus_to_Top.creates_limits : creates_limits CompHaus_to_Top :=
monadic_creates_limits _
21 changes: 18 additions & 3 deletions src/topology/category/Profinite.lean
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import topology.category.CompHaus
import topology.connected
import topology.subset_properties
import category_theory.adjunction.reflective
import category_theory.monad.limits

/-!
# The category of Profinite Types
Expand All @@ -28,9 +29,8 @@ compact, Hausdorff and totally disconnected.
## TODO

0. Link to category of projective limits of finite discrete sets.
1. existence of products, limits(?), finite coproducts
2. `Profinite_to_Top` creates limits?
3. Clausen/Scholze topology on the category `Profinite`.
1. finite coproducts
2. Clausen/Scholze topology on the category `Profinite`.

## Tags

Expand Down Expand Up @@ -133,4 +133,19 @@ lemma CompHaus.to_Profinite_obj' (X : CompHaus) :
instance Profinite.to_CompHaus.reflective : reflective Profinite.to_CompHaus :=
{ to_is_right_adjoint := ⟨CompHaus.to_Profinite, Profinite.to_Profinite_adj_to_CompHaus⟩ }

noncomputable
instance Profinite.to_CompHaus.creates_limits : creates_limits Profinite.to_CompHaus :=
monadic_creates_limits _

noncomputable
instance Profinite.to_Top.reflective : reflective (Profinite_to_Top : Profinite ⥤ Top) :=
reflective.comp Profinite.to_CompHaus CompHaus_to_Top

noncomputable
instance Profinite.to_Top.creates_limits : creates_limits Profinite_to_Top :=
b-mehta marked this conversation as resolved.
Show resolved Hide resolved
monadic_creates_limits _

instance Profinite.has_limits : limits.has_limits Profinite :=
has_limits_of_has_limits_creates_limits Profinite_to_Top

end Profinite