Documentation

Mathlib.CategoryTheory.Sites.CoverLifting

Cocontinuous functors between sites. #

We define cocontinuous functors between sites as functors that pull covering sieves back to covering sieves. This concept is also known as cover-lifting or cover-reflecting functors. We use the original terminology and definition of SGA 4 III 2.1. However, the notion of cocontinuous functor should not be confused with the general definition of cocontinuous functors between categories as functors preserving small colimits.

Main definitions #

Main results #

References #

A functor G : (C, J) ⥤ (D, K) between sites is called cocontinuous (SGA 4 III 2.1) if for all covering sieves R in D, R.pullback G is a covering sieve in C.

Instances
    theorem CategoryTheory.Functor.cover_lift {C : Type u_1} [Category.{u_4, u_1} C] {D : Type u_2} [Category.{u_5, u_2} D] (G : Functor C D) (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] {U : C} {S : Sieve (G.obj U)} (hS : S K (G.obj U)) :
    instance CategoryTheory.isCocontinuous_id {C : Type u_1} [Category.{u_4, u_1} C] (J : GrothendieckTopology C) :
    (Functor.id C).IsCocontinuous J J

    The identity functor on a site is cocontinuous.

    theorem CategoryTheory.isCocontinuous_comp {C : Type u_1} [Category.{u_4, u_1} C] {D : Type u_2} [Category.{u_5, u_2} D] {E : Type u_3} [Category.{u_6, u_3} E] (G : Functor C D) (G' : Functor D E) (J : GrothendieckTopology C) (K : GrothendieckTopology D) {L : GrothendieckTopology E} [G.IsCocontinuous J K] [G'.IsCocontinuous K L] :
    (G.comp G').IsCocontinuous J L

    The composition of two cocontinuous functors is cocontinuous.

    We will now prove that G.op.ran : (Cᵒᵖ ⥤ A) ⥤ (Dᵒᵖ ⥤ A) maps sheaves to sheaves when G : C ⥤ D is a cocontinuous functor.

    We do not follow the proofs in SGA 4 III 2.2 or https://stacks.math.columbia.edu/tag/00XK. Instead, we verify as directly as possible that if F : Cᵒᵖ ⥤ A is a sheaf, then G.op.ran.obj F is a sheaf. in order to do this, we use the "multifork" characterization of sheaves which involves limits in the category A. As G.op.ran.obj F is the chosen right Kan extension of F along G.op : Cᵒᵖ ⥤ Dᵒᵖ, we actually verify that any pointwise right Kan extension of F along G.op is a sheaf.

    def CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} (α : G.op.comp R F) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) {Y : C} (f : G.obj Y X) :
    s.pt F.obj (Opposite.op Y)

    Auxiliary definition for lift.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux_map {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} (α : G.op.comp R F) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) {Y : C} (f : G.obj Y X) {W : C} (g : W Y) (i : S.Arrow) (h : G.obj W i.Y) (w : CategoryStruct.comp h i.f = CategoryStruct.comp (G.map g) f) :
      CategoryStruct.comp (liftAux hF α s f) (F.map g.op) = CategoryStruct.comp (s i) (CategoryStruct.comp (R.map h.op) (α.app (Opposite.op W)))
      theorem CategoryTheory.RanIsSheafOfIsCocontinuous.liftAux_map' {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} (α : G.op.comp R F) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) {Y Y' : C} (f : G.obj Y X) (f' : G.obj Y' X) {W : C} (a : W Y) (b : W Y') (w : CategoryStruct.comp (G.map a) f = CategoryStruct.comp (G.map b) f') :
      CategoryStruct.comp (liftAux hF α s f) (F.map a.op) = CategoryStruct.comp (liftAux hF α s f') (F.map b.op)
      def CategoryTheory.RanIsSheafOfIsCocontinuous.lift {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) :
      s.pt R.obj (Opposite.op X)

      Auxiliary definition for isLimitMultifork

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.RanIsSheafOfIsCocontinuous.fac' {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) (j : StructuredArrow (Opposite.op X) G.op) :
        CategoryStruct.comp (lift hF hR s) (CategoryStruct.comp (R.map j.hom) (α.app j.right)) = liftAux hF α s j.hom.unop
        @[simp]
        theorem CategoryTheory.RanIsSheafOfIsCocontinuous.fac {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) (i : S.Arrow) :
        CategoryStruct.comp (lift hF hR s) (R.map i.f.op) = s i
        @[simp]
        theorem CategoryTheory.RanIsSheafOfIsCocontinuous.fac_assoc {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} {S : K.Cover X} (s : Limits.Multifork (S.index R)) (i : S.Arrow) {Z : A} (h : R.obj (Opposite.op i.Y) Z) :
        CategoryStruct.comp (lift hF hR s) (CategoryStruct.comp (R.map i.f.op) h) = CategoryStruct.comp (s i) h
        theorem CategoryTheory.RanIsSheafOfIsCocontinuous.hom_ext {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} (K : GrothendieckTopology D) [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} {S : K.Cover X} {W : A} {f g : W R.obj (Opposite.op X)} (h : ∀ (i : S.Arrow), CategoryStruct.comp f (R.map i.f.op) = CategoryStruct.comp g (R.map i.f.op)) :
        f = g
        def CategoryTheory.RanIsSheafOfIsCocontinuous.isLimitMultifork {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] {G : Functor C D} {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} {K : GrothendieckTopology D} [G.IsCocontinuous J K] {F : Functor Cᵒᵖ A} (hF : Presheaf.IsSheaf J F) {R : Functor Dᵒᵖ A} {α : G.op.comp R F} (hR : (Functor.RightExtension.mk R α).IsPointwiseRightKanExtension) {X : D} (S : K.Cover X) :
        Limits.IsLimit (S.multifork R)

        Auxiliary definition for ran_isSheaf_of_isCocontinuous: if G : C ⥤ D is a cocontinuous functor,

        Equations
        Instances For
          theorem CategoryTheory.ran_isSheaf_of_isCocontinuous {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) {A : Type w} [Category.{w', w} A] {J : GrothendieckTopology C} (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] (ℱ : Sheaf J A) :
          Presheaf.IsSheaf K (G.op.ran.obj .val)

          If G is cocontinuous, then G.op.ran pushes sheaves to sheaves.

          This is SGA 4 III 2.2. An alternative reference is https://stacks.math.columbia.edu/tag/00XK (where results are obtained under the additional assumption that C and D have pullbacks).

          def CategoryTheory.Functor.sheafPushforwardCocontinuous {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] :
          Functor (Sheaf J A) (Sheaf K A)

          A cocontinuous functor induces a pushforward functor on categories of sheaves.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            def CategoryTheory.Functor.sheafPushforwardCocontinuousCompSheafToPresheafIso {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] :
            (G.sheafPushforwardCocontinuous A J K).comp (sheafToPresheaf K A) (sheafToPresheaf J A).comp G.op.ran

            G.sheafPushforwardCocontinuous A J K : Sheaf J A ⥤ Sheaf K A is induced by the right Kan extension functor G.op.ran on presheaves.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Functor.sheafPushforwardCocontinuousCompSheafToPresheafIso_hom {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] :
              (G.sheafPushforwardCocontinuousCompSheafToPresheafIso A J K).hom = CategoryStruct.id ((G.sheafPushforwardCocontinuous A J K).comp (sheafToPresheaf K A))
              @[simp]
              theorem CategoryTheory.Functor.sheafPushforwardCocontinuousCompSheafToPresheafIso_inv {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] :
              (G.sheafPushforwardCocontinuousCompSheafToPresheafIso A J K).inv = CategoryStruct.id ((G.sheafPushforwardCocontinuous A J K).comp (sheafToPresheaf K A))
              noncomputable def CategoryTheory.Functor.sheafAdjunctionCocontinuous {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] :
              G.sheafPushforwardContinuous A J K G.sheafPushforwardCocontinuous A J K

              Given a functor between sites that is continuous and cocontinuous, the pushforward for the continuous functor G is left adjoint to the pushforward for the cocontinuous functor G.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_unit_app_val {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] (F : Sheaf K A) :
                ((G.sheafAdjunctionCocontinuous A J K).unit.app F).val = (G.op.ranAdjunction A).unit.app F.val
                theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_counit_app_val {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] (F : Sheaf J A) :
                ((G.sheafAdjunctionCocontinuous A J K).counit.app F).val = (G.op.ranAdjunction A).counit.app F.val
                theorem CategoryTheory.Functor.sheafAdjunctionCocontinuous_homEquiv_apply_val {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] {F : Sheaf K A} {H : Sheaf J A} (f : (G.sheafPushforwardContinuous A J K).obj F H) :
                (((G.sheafAdjunctionCocontinuous A J K).homEquiv F H) f).val = ((G.op.ranAdjunction A).homEquiv F.val H.val) f.val
                def CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility {C : Type u_1} {D : Type u_2} [Category.{u_3, u_1} C] [Category.{u_4, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [HasWeakSheafify J A] [HasWeakSheafify K A] [G.IsContinuous J K] :
                ((whiskeringLeft Cᵒᵖ Dᵒᵖ A).obj G.op).comp (presheafToSheaf J A) (presheafToSheaf K A).comp (G.sheafPushforwardContinuous A J K)

                The natural isomorphism exhibiting compatibility between pushforward and sheafification.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  theorem CategoryTheory.Functor.toSheafify_pullbackSheafificationCompatibility {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] [HasWeakSheafify J A] [HasWeakSheafify K A] (F : Functor Dᵒᵖ A) :
                  CategoryStruct.comp (toSheafify J (G.op.comp F)) ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val = whiskerLeft G.op (toSheafify K F)
                  @[simp]
                  theorem CategoryTheory.Functor.pushforwardContinuousSheafificationCompatibility_hom_app_val {C : Type u_1} {D : Type u_2} [Category.{u_4, u_1} C] [Category.{u_3, u_2} D] (G : Functor C D) (A : Type w) [Category.{w', w} A] (J : GrothendieckTopology C) (K : GrothendieckTopology D) [G.IsCocontinuous J K] [∀ (F : Functor Cᵒᵖ A), G.op.HasPointwiseRightKanExtension F] [G.IsContinuous J K] [HasWeakSheafify J A] [HasWeakSheafify K A] (F : Functor Dᵒᵖ A) :
                  ((G.pushforwardContinuousSheafificationCompatibility A J K).hom.app F).val = sheafifyLift J (whiskerLeft G.op (toSheafify K F))