Documentation

Mathlib.CategoryTheory.Sites.CoversTop

Objects which cover the terminal object

In this file, given a site (C, J), we introduce the notion of a family of objects Y : I → C which "cover the final object": this means that for all X : C, the sieve Sieve.ofObjects Y X is covering for J. When there is a terminal object X : C, then J.CoversTop Y holds iff Sieve.ofObjects Y X is covering for J.

We introduce a notion of compatible family of elements on objects Y and obtain Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section which asserts that if a presheaf of types is a sheaf, then any compatible family of elements on objects Y which cover the final object extends as a section of this presheaf.

A family of objects Y : I → C "covers the final object" if for all X : C, the sieve ofObjects Y X is a covering sieve.

Equations
Instances For
    @[reducible, inline]
    abbrev CategoryTheory.GrothendieckTopology.CoversTop.cover {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {I : Type u_1} {Y : IC} (hY : J.CoversTop Y) (W : C) :
    J.Cover W

    The cover of any object W : C attached to a family of objects Y that satisfy J.CoversTop Y

    Equations
    Instances For
      theorem CategoryTheory.GrothendieckTopology.CoversTop.ext {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {A : Type u'} [Category.{v', u'} A] {I : Type u_1} {Y : IC} (hY : J.CoversTop Y) (F : Sheaf J A) {c : Limits.Cone F.val} (hc : Limits.IsLimit c) {X : A} {f g : X c.pt} (h : ∀ (i : I), CategoryStruct.comp f (c.π.app (Opposite.op (Y i))) = CategoryStruct.comp g (c.π.app (Opposite.op (Y i)))) :
      f = g
      theorem CategoryTheory.GrothendieckTopology.CoversTop.sections_ext {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {I : Type u_1} {Y : IC} (hY : J.CoversTop Y) (F : Sheaf J (Type u_2)) {x y : F.val.sections} (h : ∀ (i : I), x (Opposite.op (Y i)) = y (Opposite.op (Y i))) :
      x = y
      def CategoryTheory.Presheaf.FamilyOfElementsOnObjects {C : Type u} [Category.{v, u} C] (F : Functor Cᵒᵖ (Type w)) {I : Type u_1} (Y : IC) :
      Type (max u_1 w)

      A family of elements of a presheaf of types F indexed by a family of objects Y : I → C consists of the data of an element in F.obj (Opposite.op (Y i)) for all i.

      Equations
      Instances For

        x : FamilyOfElementsOnObjects F Y is compatible if for any object Z such that there exists a morphism f : Z → Y i, then the pullback of x i by f is independent of f and i.

        Equations
        Instances For

          A family of elements indexed by Sieve.ofObjects Y X that is induced by x : FamilyOfElementsOnObjects F Y. See the equational lemma IsCompatible.familyOfElements_apply which holds under the assumption x.IsCompatible.

          Equations
          Instances For
            theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.familyOfElements_apply {C : Type u} [Category.{v, u} C] {F : Functor Cᵒᵖ (Type w)} {I : Type u_1} {Y : IC} {x : FamilyOfElementsOnObjects F Y} (hx : x.IsCompatible) {X Z : C} (f : Z X) (i : I) (φ : Z Y i) :
            x.familyOfElements X f = F.map φ.op (x i)
            theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {F : Functor Cᵒᵖ (Type w)} {I : Type u_1} {Y : IC} {x : FamilyOfElementsOnObjects F Y} (hx : x.IsCompatible) (hY : J.CoversTop Y) (hF : IsSheaf J F) :
            ∃! s : F.sections, ∀ (i : I), s (Opposite.op (Y i)) = x i
            @[deprecated CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section (since := "2024-12-17")]
            theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.exists_unique_section {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {F : Functor Cᵒᵖ (Type w)} {I : Type u_1} {Y : IC} {x : FamilyOfElementsOnObjects F Y} (hx : x.IsCompatible) (hY : J.CoversTop Y) (hF : IsSheaf J F) :
            ∃! s : F.sections, ∀ (i : I), s (Opposite.op (Y i)) = x i

            Alias of CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.existsUnique_section.

            noncomputable def CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.section_ {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {F : Functor Cᵒᵖ (Type w)} {I : Type u_1} {Y : IC} {x : FamilyOfElementsOnObjects F Y} (hx : x.IsCompatible) (hY : J.CoversTop Y) (hF : IsSheaf J F) :

            The section of a sheaf of types which lifts a compatible family of elements indexed by objects which cover the terminal object.

            Equations
            Instances For
              @[simp]
              theorem CategoryTheory.Presheaf.FamilyOfElementsOnObjects.IsCompatible.section_apply {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} {F : Functor Cᵒᵖ (Type w)} {I : Type u_1} {Y : IC} {x : FamilyOfElementsOnObjects F Y} (hx : x.IsCompatible) (hY : J.CoversTop Y) (hF : IsSheaf J F) (i : I) :
              (hx.section_ hY hF) (Opposite.op (Y i)) = x i