Documentation

Mathlib.CategoryTheory.Sites.Canonical

The canonical topology on a category #

We define the finest (largest) Grothendieck topology for which a given presheaf P is a sheaf. This is well defined since if P is a sheaf for a topology J, then it is a sheaf for any coarser (smaller) topology. Nonetheless we define the topology explicitly by specifying its sieves: A sieve S on X is covering for finestTopologySingle P iff for any f : Y โŸถ X, P satisfies the sheaf axiom for S.pullback f. Showing that this is a genuine Grothendieck topology (namely that it satisfies the transitivity axiom) forms the bulk of this file.

This generalises to a set of presheaves, giving the topology finestTopology Ps which is the finest topology for which every presheaf in Ps is a sheaf. Using Ps as the set of representable presheaves defines the canonicalTopology: the finest topology for which every representable is a sheaf.

A Grothendieck topology is called Subcanonical if it is smaller than the canonical topology, equivalently it is subcanonical iff every representable presheaf is a sheaf.

References #

@[deprecated CategoryTheory.Presieve.isSheafFor_bind (since := "2026-02-06")]
theorem CategoryTheory.Sheaf.isSheafFor_bind {C : Type uโ‚} [Category.{vโ‚, uโ‚} C] {X : C} (P : Functor Cแต’แต– (Type u_1)) (U : Sieve X) (B : โฆƒY : Cโฆ„ โ†’ โฆƒf : Y โŸถ Xโฆ„ โ†’ U.arrows f โ†’ Sieve Y) (hU : Presieve.IsSheafFor P U.arrows) (hB : โˆ€ โฆƒY : Cโฆ„ โฆƒf : Y โŸถ Xโฆ„ (hf : U.arrows f), Presieve.IsSheafFor P (B hf).arrows) (hB' : โˆ€ โฆƒY : Cโฆ„ โฆƒf : Y โŸถ Xโฆ„ (h : U.arrows f) โฆƒZ : Cโฆ„ (g : Z โŸถ Y), Presieve.IsSeparatedFor P (Sieve.pullback g (B h)).arrows) :

Alias of CategoryTheory.Presieve.isSheafFor_bind.

@[deprecated CategoryTheory.Presieve.isSheafFor_trans (since := "2026-02-06")]
theorem CategoryTheory.Sheaf.isSheafFor_trans {C : Type uโ‚} [Category.{vโ‚, uโ‚} C] {X : C} (P : Functor Cแต’แต– (Type u_1)) (R S : Sieve X) (hR : Presieve.IsSheafFor P R.arrows) (hR' : โˆ€ โฆƒY : Cโฆ„ โฆƒf : Y โŸถ Xโฆ„, S.arrows f โ†’ Presieve.IsSeparatedFor P (Sieve.pullback f R).arrows) (hS : โˆ€ โฆƒY : Cโฆ„ โฆƒf : Y โŸถ Xโฆ„, R.arrows f โ†’ Presieve.IsSheafFor P (Sieve.pullback f S).arrows) :

Alias of CategoryTheory.Presieve.isSheafFor_trans.

Construct the finest (largest) Grothendieck topology for which the given presheaf is a sheaf.

Equations
    Instances For

      Construct the finest (largest) Grothendieck topology for which all the given presheaves are sheaves.

      Equations
        Instances For

          Check that if P โˆˆ Ps, then P is indeed a sheaf for the finest topology on Ps.

          Check that if each P โˆˆ Ps is a sheaf for J, then J is a subtopology of finestTopology Ps.

          The canonicalTopology on a category is the finest (largest) topology for which every representable presheaf is a sheaf.

          Equations
            Instances For

              yoneda.obj X is a sheaf for the canonical topology.

              A representable functor is a sheaf for the canonical topology.

              A subcanonical topology is a topology which is smaller than the canonical topology. Equivalently, a topology is subcanonical iff every representable is a sheaf.

              Instances

                If every functor yoneda.obj X is a J-sheaf, then J is subcanonical.

                If J is subcanonical, we obtain a "Yoneda" functor from the defining site into the sheaf category.

                Equations
                  Instances For

                    Variant of the Yoneda embedding which allows a raise in the universe level for the category of types.

                    Equations
                      Instances For
                        @[simp]
                        theorem CategoryTheory.GrothendieckTopology.uliftYoneda_obj_val_map_down {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) [J.Subcanonical] (X : C) {Xโœ Yโœ : Cแต’แต–} (f : Xโœ โŸถ Yโœ) (aโœ : uliftFunctor.{w, v}.obj ((J.yoneda.obj X).val.obj Xโœ)) :
                        @[simp]
                        theorem CategoryTheory.GrothendieckTopology.uliftYoneda_map_val_app_down {C : Type u} [Category.{v, u} C] (J : GrothendieckTopology C) [J.Subcanonical] {Xโœ Yโœ : C} (f : Xโœ โŸถ Yโœ) (X : Cแต’แต–) (aโœ : uliftFunctor.{w, v}.obj ((J.yoneda.obj Xโœ).val.obj X)) :
                        (((uliftYoneda.{w, v, u} J).map f).val.app X aโœ).down = CategoryStruct.comp aโœ.down f
                        @[deprecated CategoryTheory.GrothendieckTopology.uliftYoneda (since := "2025-11-10")]

                        Alias of CategoryTheory.GrothendieckTopology.uliftYoneda.


                        Variant of the Yoneda embedding which allows a raise in the universe level for the category of types.

                        Equations
                          Instances For

                            If C is a category with [Category.{max w v} C], this is the isomorphism uliftYoneda.{w} (C := C) โ‰… yoneda.

                            Equations
                              Instances For

                                The yoneda embedding into the presheaf category factors through the one to the sheaf category.

                                Equations
                                  Instances For

                                    The yoneda functor into the sheaf category is fully faithful

                                    Equations
                                      Instances For