Documentation

Mathlib.CategoryTheory.Sites.Closed

Closed sieves #

A natural closure operator on sieves is a closure operator on Sieve X for each X which commutes with pullback. We show that a Grothendieck topology J induces a natural closure operator, and define what the closed sieves are. The collection of J-closed sieves forms a presheaf which is a sheaf for J, and further this presheaf can be used to determine the Grothendieck topology from the sheaf predicate. Finally we show that a natural closure operator on sieves induces a Grothendieck topology, and hence that natural closure operators are in bijection with Grothendieck topologies.

Main definitions #

Tags #

closed sieve, closure, Grothendieck topology

References #

The J-closure of a sieve is the collection of arrows which it covers.

Instances For
    @[simp]
    theorem CategoryTheory.GrothendieckTopology.close_apply {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) (xโœ : C) (f : xโœ โŸถ X) :
    (Jโ‚.close S).arrows f = Jโ‚.Covers S f
    theorem CategoryTheory.GrothendieckTopology.le_close {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) :
    S โ‰ค Jโ‚.close S

    Any sieve is smaller than its closure.

    A sieve is closed for the Grothendieck topology if it contains every arrow it covers. In the case of the usual topology on a topological space, this means that the open cover contains every open set which it covers.

    Note this has no relation to a closed subset of a topological space.

    Instances For
      theorem CategoryTheory.GrothendieckTopology.covers_iff_mem_of_isClosed {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} {S : Sieve X} (h : Jโ‚.IsClosed S) {Y : C} (f : Y โŸถ X) :
      Jโ‚.Covers S f โ†” S.arrows f

      If S is Jโ‚-closed, then S covers exactly the arrows it contains.

      theorem CategoryTheory.GrothendieckTopology.isClosed_pullback {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X Y : C} (f : Y โŸถ X) (S : Sieve X) :
      Jโ‚.IsClosed S โ†’ Jโ‚.IsClosed (Sieve.pullback f S)

      Being J-closed is stable under pullback.

      theorem CategoryTheory.GrothendieckTopology.le_close_of_isClosed {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} {S T : Sieve X} (h : S โ‰ค T) (hT : Jโ‚.IsClosed T) :
      Jโ‚.close S โ‰ค T

      The closure of a sieve S is the largest closed sieve which contains S (justifying the name "closure").

      theorem CategoryTheory.GrothendieckTopology.close_isClosed {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) :
      Jโ‚.IsClosed (Jโ‚.close S)

      The closure of a sieve is closed.

      A Grothendieck topology induces a natural family of closure operators on sieves.

      Instances For
        theorem CategoryTheory.GrothendieckTopology.isClosed_iff_close_eq_self {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) :
        Jโ‚.IsClosed S โ†” Jโ‚.close S = S

        The sieve S is closed iff its closure is equal to itself.

        theorem CategoryTheory.GrothendieckTopology.pullback_close {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X Y : C} (f : Y โŸถ X) (S : Sieve X) :
        Jโ‚.close (Sieve.pullback f S) = Sieve.pullback f (Jโ‚.close S)

        Closing under J is stable under pullback.

        @[simp]
        theorem CategoryTheory.GrothendieckTopology.close_close {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) :
        Jโ‚.close (Jโ‚.close S) = Jโ‚.close S
        theorem CategoryTheory.GrothendieckTopology.close_eq_top_iff_mem {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {X : C} (S : Sieve X) :
        Jโ‚.close S = โŠค โ†” S โˆˆ Jโ‚ X

        The sieve S is in the topology iff its closure is the maximal sieve. This shows that the closure operator determines the topology.

        The presheaf sending each object to the type of sieves on it. This will turn out to be a subobject classifier for the category of presheaves.

        Instances For
          @[simp]
          theorem CategoryTheory.Functor.sieves_map (C : Type u) [Category.{v, u} C] {Xโœ Yโœ : Cแต’แต–} (f : Xโœ โŸถ Yโœ) (S : Sieve (Opposite.unop Xโœ)) :

          The presheaf sending each object to the set of J-closed sieves on it. This presheaf is a J-sheaf (and will turn out to be a subobject classifier for the category of J-sheaves).

          Instances For

            The presheaf of J-closed sieves is a J-sheaf. The proof of this is adapted from [MM92], Chapter III, Section 7, Lemma 1.

            A sieve S is covering for J if and only if the subobject classifier is a sheaf for S.

            theorem CategoryTheory.le_topology_of_closedSieves_isSheaf {C : Type u} [Category.{v, u} C] {Jโ‚ Jโ‚‚ : GrothendieckTopology C} (h : Presieve.IsSheaf Jโ‚ (Functor.closedSieves Jโ‚‚).toFunctor) :
            Jโ‚ โ‰ค Jโ‚‚

            If presheaf of Jโ‚-closed sieves is a Jโ‚‚-sheaf then Jโ‚ โ‰ค Jโ‚‚. Note the converse is true by classifier_isSheaf and isSheaf_of_le.

            theorem CategoryTheory.topology_eq_iff_same_sheaves {C : Type u} [Category.{v, u} C] {Jโ‚ Jโ‚‚ : GrothendieckTopology C} :
            Jโ‚ = Jโ‚‚ โ†” โˆ€ (P : Functor Cแต’แต– (Type (max v u))), Presieve.IsSheaf Jโ‚ P โ†” Presieve.IsSheaf Jโ‚‚ P

            If being a sheaf for Jโ‚ is equivalent to being a sheaf for Jโ‚‚, then Jโ‚ = Jโ‚‚.

            def CategoryTheory.topologyOfClosureOperator {C : Type u} [Category.{v, u} C] (c : (X : C) โ†’ ClosureOperator (Sieve X)) (hc : โˆ€ โฆƒX Y : Cโฆ„ (f : Y โŸถ X) (S : Sieve X), (c Y) (Sieve.pullback f S) = Sieve.pullback f ((c X) S)) :

            A closure (increasing, inflationary and idempotent) operation on sieves that commutes with pullback induces a Grothendieck topology. In fact, such operations are in bijection with Grothendieck topologies.

            Instances For
              @[simp]
              theorem CategoryTheory.topologyOfClosureOperator_sieves {C : Type u} [Category.{v, u} C] (c : (X : C) โ†’ ClosureOperator (Sieve X)) (hc : โˆ€ โฆƒX Y : Cโฆ„ (f : Y โŸถ X) (S : Sieve X), (c Y) (Sieve.pullback f S) = Sieve.pullback f ((c X) S)) (X : C) :

              The topology given by the closure operator J.close on a Grothendieck topology is the same as J.

              theorem CategoryTheory.topologyOfClosureOperator_close {C : Type u} [Category.{v, u} C] (c : (X : C) โ†’ ClosureOperator (Sieve X)) (pb : โˆ€ โฆƒX Y : Cโฆ„ (f : Y โŸถ X) (S : Sieve X), (c Y) (Sieve.pullback f S) = Sieve.pullback f ((c X) S)) (X : C) (S : Sieve X) :
              (topologyOfClosureOperator c pb).close S = (c X) S