Documentation

Mathlib.CategoryTheory.Sites.SheafHom

Internal hom of sheaves

In this file, given two sheaves F and G on a site (C, J) with values in a category A, we define a sheaf of types sheafHom F G which sends X : C to the type of morphisms between the restrictions of F and G to the categories Over X.

We first define presheafHom F G when F and G are presheaves Cᵒᵖ ⥤ A and show that it is a sheaf when G is a sheaf.

TODO:

def CategoryTheory.presheafHom {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] (F G : Functor Cᵒᵖ A) :
Functor Cᵒᵖ (Type (max (max u v) v'))

Given two presheaves F and G on a category C with values in a category A, this presheafHom F G is the presheaf of types which sends an object X : C to the type of morphisms between the "restrictions" of F and G to the category Over X.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem CategoryTheory.presheafHom_map_app {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] {F G : Functor Cᵒᵖ A} {X Y Z : C} (f : Z Y) (g : Y X) (h : Z X) (w : CategoryStruct.comp f g = h) (α : (presheafHom F G).obj (Opposite.op X)) :

    Equational lemma for the presheaf structure on presheafHom. It is advisable to use this lemma rather than dsimp [presheafHom] which may result in the need to prove equalities of objects in an Over category.

    @[simp]

    The sections of the presheaf presheafHom F G identify to morphisms F ⟶ G.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      theorem CategoryTheory.PresheafHom.isAmalgamation_iff {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] {F G : Functor Cᵒᵖ A} {X : C} (S : Sieve X) (x : Presieve.FamilyOfElements (presheafHom F G) S.arrows) (hx : x.Compatible) (y : (presheafHom F G).obj (Opposite.op X)) :
      x.IsAmalgamation y ∀ (Y : C) (g : Y X) (hg : S.arrows g), y.app (Opposite.op (Over.mk g)) = (x g hg).app (Opposite.op (Over.mk (CategoryStruct.id Y)))
      theorem CategoryTheory.PresheafHom.IsSheafFor.exists_app {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] {F G : Functor Cᵒᵖ A} {X : C} {S : Sieve X} (hG : Y : C⦄ → (f : Y X) → Limits.IsLimit (G.mapCone (Sieve.pullback f S).arrows.cocone.op)) (x : Presieve.FamilyOfElements (presheafHom F G) S.arrows) {Y : C} (hx : x.Compatible) (g : Y X) :
      ∃ (φ : F.obj (Opposite.op Y) G.obj (Opposite.op Y)), ∀ {Z : C} (p : Z Y) (hp : S.arrows (CategoryStruct.comp p g)), CategoryStruct.comp φ (G.map p.op) = CategoryStruct.comp (F.map p.op) ((x (CategoryStruct.comp p g) hp).app (Opposite.op (Over.mk (CategoryStruct.id Z))))
      noncomputable def CategoryTheory.PresheafHom.IsSheafFor.app {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] {F G : Functor Cᵒᵖ A} {X : C} {S : Sieve X} (hG : Y : C⦄ → (f : Y X) → Limits.IsLimit (G.mapCone (Sieve.pullback f S).arrows.cocone.op)) (x : Presieve.FamilyOfElements (presheafHom F G) S.arrows) {Y : C} (hx : x.Compatible) (g : Y X) :

      Auxiliary definition for presheafHom_isSheafFor.

      Equations
      Instances For
        theorem CategoryTheory.PresheafHom.IsSheafFor.app_cond {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] {F G : Functor Cᵒᵖ A} {X : C} {S : Sieve X} (hG : Y : C⦄ → (f : Y X) → Limits.IsLimit (G.mapCone (Sieve.pullback f S).arrows.cocone.op)) (x : Presieve.FamilyOfElements (presheafHom F G) S.arrows) {Y : C} (hx : x.Compatible) (g : Y X) {Z : C} (p : Z Y) (hp : S.arrows (CategoryStruct.comp p g)) :
        theorem CategoryTheory.presheafHom_isSheafFor {C : Type u} [Category.{v, u} C] {A : Type u'} [Category.{v', u'} A] (F G : Functor Cᵒᵖ A) {X : C} (S : Sieve X) (hG : Y : C⦄ → (f : Y X) → Limits.IsLimit (G.mapCone (Sieve.pullback f S).arrows.cocone.op)) :
        def CategoryTheory.sheafHom' {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {A : Type u'} [Category.{v', u'} A] (F G : Sheaf J A) :
        Functor Cᵒᵖ (Type (max (max u v) v'))

        The underlying presheaf of sheafHom F G. It is isomorphic to presheafHom F.1 G.1 (see sheafHom'Iso), but has better definitional properties.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          def CategoryTheory.sheafHom {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {A : Type u'} [Category.{v', u'} A] (F G : Sheaf J A) :
          Sheaf J (Type (max (max u v') v))

          Given two sheaves F and G on a site (C, J) with values in a category A, this sheafHom F G is the sheaf of types which sends an object X : C to the type of morphisms between the "restrictions" of F and G to the category Over X.

          Equations
          Instances For

            The sections of the sheaf sheafHom F G identify to morphisms F ⟶ G.

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