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.

Equations
    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.

      Equations
        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.

          Equations
            Instances For

              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

              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 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).

              Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.Functor.closedSieves_map_coe {C : Type u} [Category.{v, u} C] (Jโ‚ : GrothendieckTopology C) {Xโœ Yโœ : Cแต’แต–} (f : Xโœ โŸถ Yโœ) (S : { S : Sieve (Opposite.unop Xโœ) // Jโ‚.IsClosed S }) :
                  โ†‘((closedSieves Jโ‚).map f S) = Sieve.pullback f.unop โ†‘S

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

                  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โ‚‚)) :
                  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.

                  Equations
                    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) :