Documentation

Mathlib.Condensed.Discrete.LocallyConstant

The sheaf of locally constant maps on CompHausLike P #

This file proves that under suitable conditions, the functor from the category of sets to the category of sheaves for the coherent topology on CompHausLike P, given by mapping a set to the sheaf of locally constant maps to it, is left adjoint to the "underlying set" functor (evaluation at the point).

We apply this to prove that the constant sheaf functor into (light) condensed sets is isomorphic to the functor of sheaves of locally constant maps described above.

Proof sketch #

The hard part of this adjunction is to define the counit. Its components are defined as follows:

Let S : CompHausLike P and let Y be a finite-product-preserving presheaf on CompHausLike P (e.g. a sheaf for the coherent topology). We need to define a map LocallyConstant S Y(*) ⟶ Y(S). Given a locally constant map f : S → Y(*), let S = S₁ ⊔ ⋯ ⊔ Sₙ be the corresponding decomposition of S into the fibers. Let yᵢ ∈ Y(*) denote the value of f on Sᵢ and denote by gᵢ the canonical map Y(*) → Y(Sᵢ). Our map then takes f to the image of (g₁(y₁), ⋯, gₙ(yₙ)) under the isomorphism Y(S₁) × ⋯ × Y(Sₙ) ≅ Y(S₁ ⊔ ⋯ ⊔ Sₙ) = Y(S).

Now we need to prove that the counit is natural in S : CompHausLike P and Y : Sheaf (coherentTopology (CompHausLike P)) (Type _). There are two key lemmas in all naturality proofs in this file (both lemmas are in the CompHausLike.LocallyConstant namespace):

Main definitions #

The functor from the category of sets to presheaves on CompHausLike P given by locally constant maps.

Instances For
    @[simp]
    theorem CompHausLike.LocallyConstant.functorToPresheaves_obj_obj {P : TopCatProp} (X : Type (max u w)) (x✝ : (CompHausLike P)ᵒᵖ) :
    (functorToPresheaves.obj X).obj x✝ = match x✝ with | Opposite.op S => LocallyConstant (↑S.toTop) X
    @[simp]
    theorem CompHausLike.LocallyConstant.functorToPresheaves_obj_map {P : TopCatProp} (X : Type (max u w)) {X✝ Y✝ : (CompHausLike P)ᵒᵖ} (f : X✝ Y✝) (g : match X✝ with | Opposite.op S => LocallyConstant (↑S.toTop) X) :
    @[simp]
    theorem CompHausLike.LocallyConstant.functorToPresheaves_map_app {P : TopCatProp} {X✝ Y✝ : Type (max u w)} (f : X✝ Y✝) (x✝ : (CompHausLike P)ᵒᵖ) (t : { obj := fun (x : (CompHausLike P)ᵒᵖ) => match x with | Opposite.op S => LocallyConstant (↑S.toTop) X✝, map := fun {X Y : (CompHausLike P)ᵒᵖ} (f : X Y) (g : match X with | Opposite.op S => LocallyConstant (↑S.toTop) X✝) => LocallyConstant.comap (TopCat.Hom.hom f.unop.hom) g, map_id := , map_comp := }.obj x✝) :

    Locally constant maps are the same as continuous maps when the target is equipped with the discrete topology

    Instances For
      def CompHausLike.LocallyConstant.fiber {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {Q : CompHausLike P} {Z : Type (max u w)} (r : LocallyConstant (↑Q.toTop) Z) (a : Function.Fiber r) :

      A fiber of a locally constant map as a CompHausLike P.

      Instances For
        instance CompHausLike.LocallyConstant.instHasPropCarrierToTopFiber {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {Q : CompHausLike P} {Z : Type (max u w)} (r : LocallyConstant (↑Q.toTop) Z) (a : Function.Fiber r) :
        HasProp P (fiber r a).toTop
        def CompHausLike.LocallyConstant.sigmaIncl {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {Q : CompHausLike P} {Z : Type (max u w)} (r : LocallyConstant (↑Q.toTop) Z) (a : Function.Fiber r) :
        fiber r a Q

        The inclusion map from a component of the coproduct induced by f into S.

        Instances For
          noncomputable def CompHausLike.LocallyConstant.sigmaIso {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {Q : CompHausLike P} {Z : Type (max u w)} (r : LocallyConstant (↑Q.toTop) Z) [HasExplicitFiniteCoproducts P] :

          The canonical map from the coproduct induced by f to S as an isomorphism in CompHausLike P.

          Instances For
            noncomputable def CompHausLike.LocallyConstant.counitAppAppImage {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {S : CompHausLike P} {Y : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))} [HasProp P PUnit.{u + 1}] (f : LocallyConstant (↑S.toTop) (Y.obj (Opposite.op (of P PUnit.{u + 1})))) (a : Function.Fiber f) :

            The projection of the counit.

            Instances For
              noncomputable def CompHausLike.LocallyConstant.counitAppApp {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] (S : CompHausLike P) (Y : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))) [CategoryTheory.Limits.PreservesFiniteProducts Y] [HasExplicitFiniteCoproducts P] :
              LocallyConstant (↑S.toTop) (Y.obj (Opposite.op (of P PUnit.{u + 1}))) Y.obj (Opposite.op S)

              The counit is defined as follows: given a locally constant map f : S → Y(*), let S = S₁ ⊔ ⋯ ⊔ Sₙ be the corresponding decomposition of S into the fibers. We need to provide an element of Y(S). It suffices to provide an element of Y(Sᵢ) for all i. Let yᵢ ∈ Y(*) denote the value of f on Sᵢ. Our desired element is the image of yᵢ under the canonical map Y(*) → Y(Sᵢ).

              Instances For
                theorem CompHausLike.LocallyConstant.presheaf_ext {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] {S : CompHausLike P} {Y : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))} [HasProp P PUnit.{u + 1}] (f : LocallyConstant (↑S.toTop) (Y.obj (Opposite.op (of P PUnit.{u + 1})))) (X : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))) [CategoryTheory.Limits.PreservesFiniteProducts X] (x y : X.obj (Opposite.op S)) [HasExplicitFiniteCoproducts P] (h : ∀ (a : Function.Fiber f), X.map (sigmaIncl f a).op x = X.map (sigmaIncl f a).op y) :
                x = y

                To check equality of two elements of X(S), it suffices to check equality after composing with each X(S) → X(Sᵢ).

                This is an auxiliary definition, the details do not matter. What's important is that this map exists so that the lemma incl_comap works.

                Instances For
                  noncomputable def CompHausLike.LocallyConstant.counitApp {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] (Y : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))) [CategoryTheory.Limits.PreservesFiniteProducts Y] :
                  functorToPresheaves.obj (Y.obj (Opposite.op (of P PUnit.{u + 1}))) Y

                  The counit is natural in S : CompHausLike P

                  Instances For
                    @[simp]
                    theorem CompHausLike.LocallyConstant.counitApp_app {P : TopCatProp} [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] (Y : CategoryTheory.Functor (CompHausLike P)ᵒᵖ (Type (max u w))) [CategoryTheory.Limits.PreservesFiniteProducts Y] (x✝ : (CompHausLike P)ᵒᵖ) (a✝ : (functorToPresheaves.obj (Y.obj (Opposite.op (of P PUnit.{u + 1})))).obj x✝) :
                    (counitApp Y).app x✝ a✝ = counitAppApp (Opposite.unop x✝) Y a✝
                    @[simp]
                    theorem CompHausLike.LocallyConstant.functor_map_hom (P : TopCatProp) [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) {X✝ Y✝ : Type (max u w)} (f : X✝ Y✝) :

                    CompHausLike.LocallyConstant.functor is naturally isomorphic to the restriction of topCatToSheafCompHausLike to discrete topological spaces.

                    Instances For

                      The counit is natural in both S : CompHausLike P and Y : Sheaf (coherentTopology (CompHausLike P)) (Type (max u w))

                      Instances For
                        @[simp]
                        theorem CompHausLike.LocallyConstant.counit_app_hom_app (P : TopCatProp) [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) [HasExplicitFiniteCoproducts P] (X : CategoryTheory.Sheaf (CategoryTheory.coherentTopology (CompHausLike P)) (Type (max u w))) (x✝ : (CompHausLike P)ᵒᵖ) (a✝ : (functorToPresheaves.obj (X.obj.obj (Opposite.op (of P PUnit.{u + 1})))).obj x✝) :
                        ((counit P hs).app X).hom.app x✝ a✝ = counitAppApp (Opposite.unop x✝) X.obj a✝

                        The unit of the adjunction is given by mapping each element to the corresponding constant map.

                        Instances For
                          @[simp]
                          theorem CompHausLike.LocallyConstant.unit_app (P : TopCatProp) [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) (x✝ : Type (max u u_1)) (x : (CategoryTheory.Functor.id (Type (max u u_1))).obj x✝) :
                          (unit P hs).app x✝ x = LocallyConstant.const (↑(of P PUnit.{u + 1}).toTop) x

                          The unit of the adjunction is an iso.

                          Instances For
                            noncomputable def CompHausLike.LocallyConstant.adjunction (P : TopCatProp) [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) [HasExplicitFiniteCoproducts P] :

                            CompHausLike.LocallyConstant.functor is left adjoint to the forgetful functor.

                            Instances For
                              @[simp]
                              theorem CompHausLike.LocallyConstant.adjunction_unit (P : TopCatProp) [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) [HasExplicitFiniteCoproducts P] :
                              (adjunction P hs).unit = unit P hs
                              @[simp]
                              theorem CompHausLike.LocallyConstant.adjunction_counit (P : TopCatProp) [∀ (S : CompHausLike P) (p : S.toTopProp), HasProp P (Subtype p)] [HasProp P PUnit.{u + 1}] [HasExplicitFiniteCoproducts P] [HasExplicitPullbacks P] (hs : ∀ ⦃X Y : CompHausLike P⦄ (f : X Y), CategoryTheory.EffectiveEpi fFunction.Surjective (CategoryTheory.ConcreteCategory.hom f)) [HasExplicitFiniteCoproducts P] :
                              (adjunction P hs).counit = counit P hs
                              @[reducible, inline]

                              The functor from sets to condensed sets given by locally constant maps into the set.

                              Instances For

                                CondensedSet.LocallyConstant.functor is isomorphic to Condensed.discrete (by uniqueness of adjoints).

                                Instances For
                                  @[reducible, inline]

                                  The functor from sets to light condensed sets given by locally constant maps into the set.

                                  Instances For