Documentation

Mathlib.CategoryTheory.Sites.LeftExact

Left exactness of sheafification #

In this file we show that sheafification commutes with finite limits.

def CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] {F : Functor K (Functor Cᵒᵖ D)} {W : J.Cover X} (i : W.Arrow) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj (Opposite.op W))))) :
Limits.Cone (F.comp ((evaluation Cᵒᵖ D).obj (Opposite.op i.Y)))

An auxiliary definition to be used in the proof of the fact that J.diagramFunctor D X preserves limits.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation_π_app {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] {F : Functor K (Functor Cᵒᵖ D)} {W : J.Cover X} (i : W.Arrow) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj (Opposite.op W))))) (k : K) :
    @[simp]
    theorem CategoryTheory.GrothendieckTopology.coneCompEvaluationOfConeCompDiagramFunctorCompEvaluation_pt {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] {F : Functor K (Functor Cᵒᵖ D)} {W : J.Cover X} (i : W.Arrow) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj (Opposite.op W))))) :
    def CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjAux {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] [Limits.HasLimitsOfShape K D] {W : (J.Cover X)ᵒᵖ} (F : Functor K (Functor Cᵒᵖ D)) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj W)))) (i : (Opposite.unop W).Arrow) :
    E.pt (Limits.limit F).obj (Opposite.op i.Y)

    Auxiliary definition for liftToDiagramLimitObj.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjAux_fac {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] [Limits.HasLimitsOfShape K D] {W : (J.Cover X)ᵒᵖ} (F : Functor K (Functor Cᵒᵖ D)) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj W)))) (i : (Opposite.unop W).Arrow) (k : K) :
      @[simp]
      theorem CategoryTheory.GrothendieckTopology.liftToDiagramLimitObjAux_fac_assoc {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] [Limits.HasLimitsOfShape K D] {W : (J.Cover X)ᵒᵖ} (F : Functor K (Functor Cᵒᵖ D)) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj W)))) (i : (Opposite.unop W).Arrow) (k : K) {Z : D} (h : (F.obj k).obj (Opposite.op i.Y) Z) :
      @[reducible, inline]
      abbrev CategoryTheory.GrothendieckTopology.liftToDiagramLimitObj {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] {X : C} {K : Type (max v u)} [SmallCategory K] [Limits.HasLimitsOfShape K D] {W : (J.Cover X)ᵒᵖ} (F : Functor K (Functor Cᵒᵖ D)) (E : Limits.Cone (F.comp ((J.diagramFunctor D X).comp ((evaluation (J.Cover X)ᵒᵖ D).obj W)))) :
      E.pt (J.diagram (Limits.limit F) X).obj W

      An auxiliary definition to be used in the proof of the fact that J.diagramFunctor D X preserves limits.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        instance CategoryTheory.GrothendieckTopology.preservesLimit_diagramFunctor {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] (X : C) (K : Type (max v u)) [SmallCategory K] [Limits.HasLimitsOfShape K D] (F : Functor K (Functor Cᵒᵖ D)) :
        Limits.PreservesLimit F (J.diagramFunctor D X)
        def CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] {K : Type (max v u)} [SmallCategory K] [FinCategory K] [Limits.HasLimitsOfShape K D] [Limits.PreservesLimitsOfShape K (forget D)] [Limits.ReflectsLimitsOfShape K (forget D)] (F : Functor K (Functor Cᵒᵖ D)) (X : C) (S : Limits.Cone (F.comp ((J.plusFunctor D).comp ((evaluation Cᵒᵖ D).obj (Opposite.op X))))) :
        S.pt (J.plusObj (Limits.limit F)).obj (Opposite.op X)

        An auxiliary definition to be used in the proof that J.plusFunctor D commutes with finite limits.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          theorem CategoryTheory.GrothendieckTopology.liftToPlusObjLimitObj_fac {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {D : Type w} [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] {K : Type (max v u)} [SmallCategory K] [FinCategory K] [Limits.HasLimitsOfShape K D] [Limits.PreservesLimitsOfShape K (forget D)] [Limits.ReflectsLimitsOfShape K (forget D)] (F : Functor K (Functor Cᵒᵖ D)) (X : C) (S : Limits.Cone (F.comp ((J.plusFunctor D).comp ((evaluation Cᵒᵖ D).obj (Opposite.op X))))) (k : K) :
          CategoryStruct.comp (liftToPlusObjLimitObj F X S) ((J.plusMap (Limits.limit.π F k)).app (Opposite.op X)) = S.app k
          def CategoryTheory.plusPlusSheafIsoPresheafToSheaf {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] :

          plusPlusSheaf is isomorphic to an arbitrary choice of left adjoint.

          Equations
          Instances For
            def CategoryTheory.plusPlusFunctorIsoSheafification {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] :
            J.sheafification D sheafification J D

            plusPlusFunctor is isomorphic to sheafification.

            Equations
            Instances For
              def CategoryTheory.plusPlusIsoSheafify {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] (P : Functor Cᵒᵖ D) :
              J.sheafify P sheafify J P

              plusPlus is isomorphic to sheafify.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.toSheafify_plusPlusIsoSheafify_hom {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] (P : Functor Cᵒᵖ D) :
                CategoryStruct.comp (J.toSheafify P) (plusPlusIsoSheafify J D P).hom = toSheafify J P
                @[simp]
                theorem CategoryTheory.toSheafify_plusPlusIsoSheafify_hom_assoc {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] (P : Functor Cᵒᵖ D) {Z : Functor Cᵒᵖ D} (h : sheafify J P Z) :
                instance CategoryTheory.instHasSheafifyOfHasFiniteLimits {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) (D : Type w) [Category.{max v u, w} D] [∀ (P : Functor Cᵒᵖ D) (X : C) (S : J.Cover X), Limits.HasMultiequalizer (S.index P)] [∀ (X : C), Limits.HasColimitsOfShape (J.Cover X)ᵒᵖ D] [HasForget D] [∀ (X : C), Limits.PreservesColimitsOfShape (J.Cover X)ᵒᵖ (forget D)] [Limits.PreservesLimits (forget D)] [(forget D).ReflectsIsomorphisms] [Limits.HasFiniteLimits D] :