Documentation

Mathlib.Topology.Category.LightProfinite.Basic

Light profinite spaces #

We construct the category LightProfinite of light profinite topological spaces. These are implemented as totally disconnected second countable compact Hausdorff spaces.

This file also defines the category LightDiagram, which consists of those spaces that can be written as a sequential limit (in Profinite) of finite sets.

We define an equivalence of categories LightProfiniteLightDiagram and prove that these are essentially small categories.

structure LightProfinite :
Type (u + 1)

LightProfinite is the category of second countable profinite spaces.

  • toCompHaus : CompHaus

    The underlying compact Hausdorff space of a light profinite space.

  • isTotallyDisconnected : TotallyDisconnectedSpace self.toCompHaus.toTop

    A light profinite space is totally disconnected

  • secondCountable : SecondCountableTopology self.toCompHaus.toTop

    A light profinite space is second countable

Instances For

    A light profinite space is totally disconnected

    theorem LightProfinite.secondCountable (self : LightProfinite) :
    SecondCountableTopology self.toCompHaus.toTop

    A light profinite space is second countable

    Construct a term of LightProfinite from a type endowed with the structure of a compact, Hausdorff, totally disconnected and second countable topological space.

    Equations
    Instances For
      Equations
      Equations
      • LightProfinite.instTopologicalSpaceObjForget = let_fun this := inferInstance; this
      @[simp]
      theorem lightToProfinite_map :
      ∀ {X Y : LightProfinite} (f : X Y), lightToProfinite.map f = f
      @[simp]
      theorem lightToProfinite_obj (X : LightProfinite) :
      lightToProfinite.obj X = Profinite.of X.toCompHaus.toTop

      The fully faithful embedding of LightProfinite in Profinite.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        @[simp]
        theorem lightProfiniteToCompHaus_obj (self : LightProfinite) :
        lightProfiniteToCompHaus.obj self = self.toCompHaus

        The fully faithful embedding of LightProfinite in TopCat. This is definitionally the same as the obvious composite.

        Equations
        Instances For
          @[simp]
          theorem FintypeCat.toLightProfinite_map_apply :
          ∀ {X Y : FintypeCat} (f : X Y) (a : X), (FintypeCat.toLightProfinite.map f) a = f a

          The natural functor from Fintype to LightProfinite, endowing a finite type with the discrete topology.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            FintypeCat.toLightProfinite is fully faithful.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For

              An explicit limit cone for a functor F : J ⥤ LightProfinite, for a countable category J defined in terms of CompHaus.limitCone, which is defined in terms of TopCat.limitCone.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For

                The limit cone LightProfinite.limitCone F is indeed a limit cone.

                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.

                  Any morphism of light profinite spaces is a closed map.

                  Any continuous bijection of light profinite spaces induces an isomorphism.

                  noncomputable def LightProfinite.isoOfBijective {X : LightProfinite} {Y : LightProfinite} (f : X Y) (bij : Function.Bijective f) :
                  X Y

                  Any continuous bijection of light profinite spaces induces an isomorphism.

                  Equations
                  Instances For
                    @[simp]
                    theorem LightProfinite.isoOfHomeo_hom {X : LightProfinite} {Y : LightProfinite} (f : X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop) :
                    (LightProfinite.isoOfHomeo f).hom = lightProfiniteToCompHausFullyFaithful.preimage { toFun := f, continuous_toFun := }
                    @[simp]
                    theorem LightProfinite.isoOfHomeo_inv {X : LightProfinite} {Y : LightProfinite} (f : X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop) :
                    (LightProfinite.isoOfHomeo f).inv = lightProfiniteToCompHausFullyFaithful.preimage { toFun := f.symm, continuous_toFun := }
                    noncomputable def LightProfinite.isoOfHomeo {X : LightProfinite} {Y : LightProfinite} (f : X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop) :
                    X Y

                    Construct an isomorphism from a homeomorphism.

                    Equations
                    Instances For
                      @[simp]
                      @[simp]
                      theorem LightProfinite.homeoOfIso_symm_apply {X : LightProfinite} {Y : LightProfinite} (f : X Y) (a : (CategoryTheory.forget CompHaus).obj Y.toCompHaus) :
                      (LightProfinite.homeoOfIso f).symm a = f.inv a
                      def LightProfinite.homeoOfIso {X : LightProfinite} {Y : LightProfinite} (f : X Y) :
                      X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop

                      Construct a homeomorphism from an isomorphism.

                      Equations
                      Instances For
                        @[simp]
                        theorem LightProfinite.isoEquivHomeo_symm_apply_inv_apply {X : LightProfinite} {Y : LightProfinite} (f : X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop) (a : (lightProfiniteToCompHaus.obj Y).toTop) :
                        (LightProfinite.isoEquivHomeo.symm f).inv a = f.symm a
                        @[simp]
                        theorem LightProfinite.isoEquivHomeo_symm_apply_hom_apply {X : LightProfinite} {Y : LightProfinite} (f : X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop) (a : (lightProfiniteToCompHaus.obj X).toTop) :
                        (LightProfinite.isoEquivHomeo.symm f).hom a = f a
                        @[simp]
                        theorem LightProfinite.isoEquivHomeo_apply_symm_apply {X : LightProfinite} {Y : LightProfinite} (f : X Y) (a : (CategoryTheory.forget CompHaus).obj Y.toCompHaus) :
                        (LightProfinite.isoEquivHomeo f).symm a = f.inv a
                        @[simp]
                        theorem LightProfinite.isoEquivHomeo_apply_apply {X : LightProfinite} {Y : LightProfinite} (f : X Y) (a : (CategoryTheory.forget CompHaus).obj X.toCompHaus) :
                        (LightProfinite.isoEquivHomeo f) a = f.hom a
                        noncomputable def LightProfinite.isoEquivHomeo {X : LightProfinite} {Y : LightProfinite} :
                        (X Y) (X.toCompHaus.toTop ≃ₜ Y.toCompHaus.toTop)

                        The equivalence between isomorphisms in LightProfinite and homeomorphisms of topological spaces.

                        Equations
                        • LightProfinite.isoEquivHomeo = { toFun := LightProfinite.homeoOfIso, invFun := LightProfinite.isoOfHomeo, left_inv := , right_inv := }
                        Instances For
                          structure LightDiagram :
                          Type (u + 1)

                          A structure containing the data of sequential limit in Profinite of finite sets.

                          Instances For

                            The underlying Profinite of a LightDiagram.

                            Equations
                            • S.toProfinite = S.cone.pt
                            Instances For
                              @[simp]
                              Equations
                              • instTopologicalSpaceObjLightDiagramForget = inferInstance

                              A profinite space which is light gives rise to a light profinite space.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                The functor part of the equivalence LightProfiniteLightDiagram

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For

                                  The inverse part of the equivalence LightProfiniteLightDiagram

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For

                                    The equivalence of categories LightProfiniteLightDiagram

                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      structure LightDiagram' :

                                      This is an auxiliary definition used to show that LightDiagram is essentially small.

                                      Note that below we put a category instance on this structure which is completely different from the category instance on ℕᵒᵖ ⥤ FintypeCat.Skeleton.{u}. Neither the morphisms nor the objects are the same.

                                      Instances For

                                        The functor part of the equivalence of categories LightDiagram'LightDiagram.

                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For

                                          The equivalence beween LightDiagram and a small category.

                                          Equations
                                          Instances For