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

            The projection of the counit.

            Instances For

              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

                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

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

                  Instances For
                    @[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