7.24 Existence of lower shriek to 7.43 Subtopoi
Section7.24 Existence of lower shriek#
Section 7.24 of the Stacks Project, Tag 09YW. 1 tag here is carried by 1 declaration of the repository (in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 09YX, a lemma
Tag 09YX in the Stacks Project.
CategoryTheory.Sheaf.isRightAdjoint_of_isCorepresentable_sections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/ExistenceOfLowerShriek.lean, line 319. The attribute's comment: “Existence of lower shriek: the inverse image of a morphism of topoi has a left adjoint as soon as it is corepresentable on sections over a family of objects covering everything.”.
Stacks 09YX. Let
C,Dbe sites and letfinv : Sh(C) ⥤ Sh(D)be a functor between their topoi of sheaves of sets — for instance the inverse imagef⁻¹of a morphism of topoif : Sh(D) → Sh(C). LetEbe a subset of the objects ofDsuch that
- for every
V ∈ Ethere is a sheafGonCwithfinv F (V) = Mor_{Sh(C)}(G, F)functorially inF, i.e. the functorF ↦ finv F (V)is corepresentable, and- every object of
Dhas a covering by objects ofE, i.e. the inclusion of the full subcategory onEis cover dense.Then
finvhas a left adjointf_!.
public theorem isRightAdjoint_of_isCorepresentable_sections {C : Type u} [Category.{v} C]
{D : Type u} [Category.{v} D] {J : GrothendieckTopology C} {K : GrothendieckTopology D}
(finv : Sheaf J (Type max u v) ⥤ Sheaf K (Type max u v)) (E : ObjectProperty D)
[E.ι.IsCoverDense K]
(hE : ∀ V : D, E V → (finv ⋙ (sheafSections K (Type max u v)).obj (op V)).IsCorepresentable) :
finv.IsRightAdjoint
Sources
Section7.25 Localization#
Section 7.25 of the Stacks Project, Tag 00XZ. 8 tags here are carried by 17 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 03CD, a lemma
Tag 03CD in the Stacks Project.
CategoryTheory.OverShriek.overShriek_sheafify_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LowerShriekCoproducts.lean, line 245.
Stacks 03CD, packaged as the existence of the isomorphism
j_{U!}(G^#) ≅ (∐_{φ : V ⟶ U} G(V →φ U))^#.
theorem overShriek_sheafify_iso :
Nonempty
(((Over.forget U).sheafPullback (Type v) (J.over U) J).obj
((presheafToSheaf (J.over U) (Type v)).obj G) ≅
(presheafToSheaf J (Type v)).obj (presheaf G))
Tag 03HU, a lemma
Tag 03HU in the Stacks Project.
CategoryTheory.overShriekSheafifyYonedaIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LowerShriekRepresentable.lean, line 50.
Stacks 03HU. For an object
X/Uof the localized siteC/U, the lower shriekj_{U!} = (Over.forget U).sheafPullbackof the sheafh_{X/U}^#associated to the presheaf onC/Urepresented byX/Uis the sheafh_X^#associated to the presheaf onCrepresented by the underlying objectX = j_U(X/U).
noncomputable def overShriekSheafifyYonedaIso (X : Over U) :
((Over.forget U).sheafPullback (Type v) (J.over U) J).obj
((presheafToSheaf (J.over U) (Type v)).obj (yoneda.obj X)) ≅
(presheafToSheaf J (Type v)).obj (yoneda.obj X.left)
Tag 00Y1, a lemma
Tag 00Y1 in the Stacks Project.
CategoryTheory.OverShriek.isEquivalence_sheafFunctorToOver, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/SheavesOverRepresentable.lean, line 515. The attribute's comment: “the functor j_{U!} : Sh(C/U) ⥤ Sh(C)/h_U^# is an equivalence”.
Stacks 00Y1. The functor
Φ_sh : Sh(C/U) ⥤ Sh(C)/h_U^#induced byj_{U!}is full, faithful and essentially surjective, i.e. an equivalence.
instance isEquivalence_sheafFunctorToOver : (sheafFunctorToOver (U := U) J).IsEquivalence
CategoryTheory.OverShriek.sheafEquivalence, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/SheavesOverRepresentable.lean, line 522. The attribute's comment: “the resulting equivalence of categories Sh(C/U) ≌ Sh(C)/h_U^#”.
Stacks 00Y1, as an equivalence of categories
Sh(C/U) ≌ Sh(C)/h_U^#. Its functor issheafFunctorToOver, the sheaf levelj_{U!}viewed as a functor into the slice (sheafEquivalence_functor), and its inverse is isomorphic to the fibre functor(F, φ) ↦ F_φ.
def sheafEquivalence :
Sheaf (J.over U) (Type v) ≌ Over ((presheafToSheaf J (Type v)).obj (yoneda.obj U))
CategoryTheory.OverShriek.sheafFunctorToOverForgetIsoOfAdjunction, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/SheavesOverRepresentable.lean, line 561. The attribute's comment: “j_{U!} is Sh(C/U) ≌ Sh(C)/h_U^# followed by Over.forget, for any left adjoint”.
Stacks 00Y1, in the form the source restates it in:
j_{U!}is the equivalenceΦ : Sh(C/U) ≌ Sh(C)/h_U^#followed byOver.forget : Sh(C)/h_U^# ⥤ Sh(C).Here
j_{U!}is an arbitrary left adjointLof the restriction functorj_U^{-1}, so this is a statement aboutj_{U!}rather than about one model of it:sheafFunctorToOverForgetIsoidentifiesΦ ⋙ Over.forgetwith the left adjoint obtained fromOver.forget U, and two left adjoints of one functor are canonically isomorphic.The adjunction
adjis also what makes that left adjoint exist (J.overPullbackbeing the pushforward alongOver.forget U), so no adjointness hypothesis beyondadjis assumed.
def sheafFunctorToOverForgetIsoOfAdjunction
{L : Sheaf (J.over U) (Type v) ⥤ Sheaf J (Type v)} (adj : L ⊣ J.overPullback (Type v) U) :
sheafFunctorToOver (U := U) J ⋙ Over.forget _ ≅ L
Tag 04BB, a lemma
Tag 04BB in the Stacks Project.
CategoryTheory.OverShriek.preservesLimitsOfShape_of_isConnected, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/Localization.lean, line 162. The attribute's comment: “j_{U!} commutes with fibre products and equalizers, and more generally with connected limits; in particular it preserves subsheaf inclusions.”. References: SGA 4 III (5.1), “fibre products clause”; SGA 4 III (1.9.2), “more general”.
Stacks 04BB. Let
Cbe a site and letUbe an object ofC. LetLbe a left adjoint of the restriction functorj_U^{-1} = J.overPullback : Sh(C) ⥤ Sh(C/U), i.e. letLbej_{U!}. ThenLcommutes with limits of every connected shapeK; in particular it commutes with fibre products (K = WalkingCospan) and equalizers (K = WalkingParallelPair), and hence carries subsheaf inclusions to subsheaf inclusions.
public theorem preservesLimitsOfShape_of_isConnected {C : Type u} [Category.{v} C]
(J : GrothendieckTopology C) (U : C) [HasWeakSheafify J (Type v)]
[HasWeakSheafify (J.over U) (Type v)] [J.WEqualsLocallyBijective (Type v)]
{L : Sheaf (J.over U) (Type v) ⥤ Sheaf J (Type v)} (adj : L ⊣ J.overPullback (Type v) U)
{K : Type w} [Category.{w'} K] [IsConnected K] :
Limits.PreservesLimitsOfShape K L
Tag 0E8E, a lemma
Tag 0E8E in the Stacks Project.
CategoryTheory.OverShriek.reflectsMonomorphisms_and_reflectsEpimorphisms, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/Localization.lean, line 264. The attribute's comment: “j_{U!} reflects injections and surjections of sheaves of sets.”.
Stacks 0E8E. Let
Cbe a site and letUbe an object ofC. LetLbe a left adjoint of the restriction functorj_U^{-1} = J.overPullback : Sh(C) ⥤ Sh(C/U), i.e. letLbej_{U!}. ThenLreflects monomorphisms and epimorphisms, that is (Stacks 00WN), ifj_{U!}φis an injection of sheaves of sets then so isφ, and ifj_{U!}φis a surjection of sheaves of sets then so isφ.
public theorem reflectsMonomorphisms_and_reflectsEpimorphisms {C : Type u} [Category.{v} C]
(J : GrothendieckTopology C) (U : C) [HasWeakSheafify J (Type v)]
[HasWeakSheafify (J.over U) (Type v)] [J.WEqualsLocallyBijective (Type v)]
{L : Sheaf (J.over U) (Type v) ⥤ Sheaf J (Type v)} (adj : L ⊣ J.overPullback (Type v) U) :
L.ReflectsMonomorphisms ∧ L.ReflectsEpimorphisms
Tag 03EE, a lemma
Tag 03EE in the Stacks Project.
CategoryTheory.OverShriek.overShriek_overPullback_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LowerShriekProduct.lean, line 113.
Stacks 03EE, packaged as the existence of the isomorphism
j_{U!}j_U^{-1}F ≅ F × h_U^#.
theorem overShriek_overPullback_iso (F : Sheaf J (Type v)) :
Nonempty
(((Over.forget U).sheafPullback (Type v) (J.over U) J).obj
((J.overPullback (Type v) U).obj F) ≅
F ⨯ (presheafToSheaf J (Type v)).obj (yoneda.obj U))
Tag 03EH, a lemma
Tag 03EH in the Stacks Project.
comp_forget_eq_forget, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizationTriangle.lean, line 68. The attribute's comment: “triangle”. References: SGA 4 I (5.10), “commutative triangle”; SGA 3 I (1.6).
Commutativity of the relocalization triangle:
j_U ∘ j = j_V, i.e.Over.map f ⋙ Over.forget U = Over.forget V.
theorem comp_forget_eq_forget :
Over.map f ⋙ Over.forget U = Over.forget V
map_eq_forget_iteratedSlice, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizationTriangle.lean, line 89. The attribute's comment: “j = j_{V/U}”. References: SGA 3 I (1.6), “partial”.
Under the identification
(C/U)/(V/U) ≅ C/Vgiven byOver.iteratedSliceEquiv (Over.mk f), the relocalization functorj = Over.map fagrees with the localization functorj_{V/U} = Over.forget (Over.mk f).
theorem map_eq_forget_iteratedSlice :
(Over.iteratedSliceEquiv (Over.mk f)).functor ⋙ Over.map f =
Over.forget (Over.mk f)
inverseImage_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizationTriangle.lean, line 113. The attribute's comment: “j_V^{-1} = j^{-1} ∘ j_U^{-1}”.
(Inverse image, strict equality.)
j_V^{-1} = j^{-1} ∘ j_U^{-1}as functorsSheaf J A ⟶ Sheaf (J.over V) A.This is the strict equality of
sheafPushforwardContinuousfunctors, valid because the underlying functors satisfyOver.map f ⋙ Over.forget U = Over.forget Vstrictly.
theorem inverseImage_eq :
(Over.forget V).sheafPushforwardContinuous A (J.over V) J =
(Over.forget U).sheafPushforwardContinuous A (J.over U) J ⋙
(Over.map f).sheafPushforwardContinuous A (J.over V) (J.over U)
leftAdjointIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizationTriangle.lean, line 133. The attribute's comment: “j_{V!} = j_{U!} ∘ j_!”.
(Lower-shriek, natural isomorphism.)
j_{V!} ≅ j_{U!} ∘ j_!as functorsSheaf (J.over V) A ⟶ Sheaf J A.Constructed from
inverseImage_eqvia uniqueness of left adjoints: each ofsheafPullbackis a chosen left adjoint to the correspondingsheafPushforwardContinuous, and the compositionj_! ∘ j_U_!is left adjoint toj_U^{-1} ∘ j^{-1} = j_V^{-1}byinverseImage_eq.
noncomputable def leftAdjointIso :
(Over.forget V).sheafPullback A (J.over V) J ≅
(Over.map f).sheafPullback A (J.over V) (J.over U) ⋙
(Over.forget U).sheafPullback A (J.over U) J
leftAdjointIso_hom_app_comp_map_comp_counit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizationTriangle.lean, line 169. The attribute's comment: “j_{V!} = j_{U!} ∘ j_! carries one transpose to the other”.
Stacks 03EH carries one transpose to the other. A morphism
u : T ⟶ j_V^{-1}Ztransposes acrossj_{V!} ⊣ j_V^{-1}on the one hand and across(j_! ∘ j_{U!}) ⊣ j_V^{-1}on the other, and the two transposes differ byleftAdjointIso.This is what
leftAdjointIsomeans: it is aAdjunction.leftAdjointUniq, so on its own it is only an isomorphism of two chosen left adjoints, and the statement that identifies it is the agreement of the transposes it induces. It is also the only form in which the triangle can be used inside an equation of morphisms out of a lower shriek, where one side is written withj_{V!}and the other withj_{U!} ∘ j_!.
Adjunction.leftAdjointUniq_hom_app_counitis the caseu = 𝟙; the general case is that one followed by the naturality ofleftAdjointIso.
theorem leftAdjointIso_hom_app_comp_map_comp_counit {T : Sheaf (J.over V) A} {Z : Sheaf J A}
(u : T ⟶ ((Over.forget V).sheafPushforwardContinuous A (J.over V) J).obj Z) :
((Over.forget V).sheafPullback A (J.over V) J).map u ≫
((Over.forget V).sheafAdjunctionContinuous A (J.over V) J).counit.app Z =
(leftAdjointIso J f A).hom.app T ≫
((Over.map f).sheafPullback A (J.over V) (J.over U) ⋙
(Over.forget U).sheafPullback A (J.over U) J).map u ≫
(((Over.map f).sheafAdjunctionContinuous A (J.over V) (J.over U)).comp
((Over.forget U).sheafAdjunctionContinuous A (J.over U) J)).counit.app Z
Tag 04IL, a lemma
Tag 04IL in the Stacks Project.
CategoryTheory.OverShriek.shriekCompSheafFunctorToOverIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/Relocalize.lean, line 355. The attribute's comment: “(2): under the identification of 00Y1, j_! is postcomposition with h_f^#”.
Stacks 04IL (2). Under the identification of Stacks 00Y1, used in the forward direction
Φ_U = sheafFunctorToOver J : Sh(C/U) ⥤ Sh(C)/h_U^#, the relocalization lower shriekj_!becomes postcomposition withh_f^# : h_V^# ⟶ h_U^#:j_!(H --φ--> h_V^#) = (H --φ ≫ h_f^#--> h_U^#) .This is Stacks' proof of (2): the identification sends
Gtoj_{V!}G ⟶ j_{V!}(*) = h_V^#, soj_!Gis sent toj_{U!}j_!G ⟶ j_{U!}(*) = h_U^#, andj_{U!}j_! = j_{V!}— carried out here at the presheaf level, where the two structural maps toh_Uare literally the same (relocalizePresheafFunctorToOverIso), and then transported through sheafification.
def shriekCompSheafFunctorToOverIso :
(Over.map f).sheafPullback (Type v) (J.over V) (J.over U) ⋙ sheafFunctorToOver (U := U) J ≅
sheafFunctorToOver (U := V) J ⋙
Over.map ((presheafToSheaf J (Type v)).map (yoneda.map f))
CategoryTheory.OverShriek.inverseImageCompSheafFunctorToOverIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/Relocalize.lean, line 400. The attribute's comment: “(1): under the identification of 00Y1, j^{-1} is base change along h_f^#”.
Stacks 04IL (1). Under the identification of Stacks 00Y1, used in the forward direction
Φ_U = sheafFunctorToOver J, the relocalization inverse imagej^{-1}becomes base change alongh_f^# : h_V^# ⟶ h_U^#:j^{-1}(H --φ--> h_U^#) = (H ×_{φ, h_U^#, h_f^#} h_V^# ⟶ h_V^#) .This is the proof Stacks suggests: "the reader can now prove (1) by using that
j^{-1}is the right adjoint toj_!and using that the rule in (1) is the right adjoint to the rule in (2)". Concretely,Over.map h_f^# ⋙ Φ_U^{-1}— which isj_!transported, by (2) — is left adjoint both toj^{-1} ⋙ Φ_Vand toΦ_U ⋙ Over.pullback h_f^#, so the two agree by uniqueness of right adjoints.
def inverseImageCompSheafFunctorToOverIso :
(Over.map f).sheafPushforwardContinuous (Type v) (J.over V) (J.over U) ⋙
sheafFunctorToOver (U := V) J ≅
sheafFunctorToOver (U := U) J ⋙
Over.pullback ((presheafToSheaf J (Type v)).map (yoneda.map f))
CategoryTheory.OverShriek.homEquiv_symm_inverseImageCompSheafFunctorToOverIso_inv_app, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/Relocalize.lean, line 427. The attribute's comment: “(1): the comparison of inverse images is the one its counit prescribes”.
Stacks 04IL (1) is the comparison its counit prescribes. Transposing the inverse of the comparison across the adjunction
Φ_V^{-1} ⋙ j_! ⊣ j^{-1} ⋙ Φ_V— the one whose left adjoint Stacks 04IL (2) identifies withOver.map h_f^# ⋙ Φ_U^{-1}— returns, up to that identification, the counit of base change alongh_f^#read through Stacks 00Y1 atU.Both sides are morphisms out of
Φ_V^{-1}(Φ_U(j^{-1}... ) ×_{h_U^#} h_V^#), and the comparison is anAdjunction.rightAdjointUniq, so this isAdjunction.homEquiv_symm_rightAdjointUniq_hom_appfor the two adjunctions it is built from, read in the inverse direction byAdjunction.rightAdjointUniq_inv_appand corrected byAdjunction.ofNatIsoLeftfor the identification of the two left adjoints.This is the form in which the comparison enters an equation that has been transposed across a lower shriek: on one side of such an equation the base change of Stacks 03EH appears, on the other the relocalization counit, and nothing but this lemma relates them.
theorem homEquiv_symm_inverseImageCompSheafFunctorToOverIso_inv_app
(Z : Sheaf (J.over U) (Type v)) :
(((sheafEquivalence (U := V) J).symm.toAdjunction.comp
((Over.map f).sheafAdjunctionContinuous (Type v) (J.over V) (J.over U))).homEquiv
((sheafFunctorToOver (U := U) J ⋙
Over.pullback ((presheafToSheaf J (Type v)).map (yoneda.map f))).obj Z) Z).symm
((inverseImageCompSheafFunctorToOverIso f J).inv.app Z) =
(inverseCompShriekRelocalizeIso f J).hom.app
((sheafFunctorToOver (U := U) J ⋙
Over.pullback ((presheafToSheaf J (Type v)).map (yoneda.map f))).obj Z) ≫
((Over.mapPullbackAdj ((presheafToSheaf J (Type v)).map (yoneda.map f))).comp
(sheafEquivalence (U := U) J).symm.toAdjunction).counit.app Z
CategoryTheory.OverShriek.left_inverseImageCompSheafFunctorToOverIso_inv_app_comp_counit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizeCounit.lean, line 848. The attribute's comment: “(1) carries the counit of j_{V!} to the counit of j_{U!}”.
Stacks 04IL (1) carries the counit of
j_{V!} ⊣ j_V^{-1}to that ofj_{U!} ⊣ j_U^{-1}. The inverse of Stacks 04IL (1) at a restricted sheafj_U^{-1}A, read throughOver.forget h_V^#and followed by Stacks 00Y1's identification atVand the counitε^V, is the first projection of the base change alongh_f^#followed by Stacks 00Y1's identification atUand the counitε^U.The two counits belong to two different localizations of the site, and Stacks 04IL (1) is what relates them.
theorem left_inverseImageCompSheafFunctorToOverIso_inv_app_comp_counit
(A : Sheaf J (Type v)) :
((inverseImageCompSheafFunctorToOverIso f J).inv.app
((J.overPullback (Type v) U).obj A)).left ≫
(sheafFunctorToOverForgetIso (U := V) J).hom.app ((J.overPullback (Type v) V).obj A) ≫
((Over.forget V).sheafAdjunctionContinuous (Type v) (J.over V) J).counit.app A =
pullback.fst
((sheafFunctorToOver (U := U) J).obj ((J.overPullback (Type v) U).obj A)).hom
((presheafToSheaf J (Type v)).map (yoneda.map f)) ≫
(sheafFunctorToOverForgetIso (U := U) J).hom.app ((J.overPullback (Type v) U).obj A) ≫
((Over.forget U).sheafAdjunctionContinuous (Type v) (J.over U) J).counit.app A
Sources
Section7.26 Glueing sheaves#
Section 7.26 of the Stacks Project, Tag 04TP. 6 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04TQ, a lemma
Tag 04TQ in the Stacks Project.
Stacks.SheafMapGluing.maps_of_sheaves_glue, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Glueing/MapsOfSheavesGlue.lean, line 513.
Stacks 04TQ — Maps of sheaves glue (existence and uniqueness).
Let
(C, J)be a site with fiber products,Athe target category of sheaf values,F, G : Sheaf J A, and let{ f i : U i → U }be a covering ofUinJ. Then any family of maps of restricted sheavesφ i : F|_{C/U i} ⟶ G|_{C/U i}that is compatible on the overlapsC/(U i ×_U U j)glues to a unique mapφ : F|_{C/U} ⟶ G|_{C/U}whose restriction to eachC/U iisφ i.
theorem maps_of_sheaves_glue
(hcov : Sieve.generate (Presieve.ofArrows Ui f) ∈ J U)
(φ : ∀ i, RestrictedHom J F G (Ui i))
(hφ : CompatibleOnOverlaps J F G U Ui f φ) :
∃! ψ : RestrictedHom J F G U, ∀ i, restrictHomAlong J (f i) F G ψ = φ i
Tag 0BWQ, a lemma
Tag 0BWQ in the Stacks Project.
CategoryTheory.Sheaf.tensorHomEquivIhom, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/CartesianClosed.lean, line 76.
Stacks 0BWQ. For sheaves
F,G,Hon a siteCthere is a canonical bijectionMor(F × G, H) ≃ Mor(F, SheafHom(G, H)), whereSheafHom(G, H)is the internal hom of the cartesian closed category of sheaves.The bijection is the hom-equivalence of the adjunction
- ⊗ G ⊣ ihom G, so it is natural in all three entries, which is Stacks' functoriality clause. See the module docstring for the caveat that the internal hom here is Mathlib's abstract one rather than Mathlib'ssheafHom.
noncomputable def tensorHomEquivIhom {A : Type*} [Category.{max u v} A]
[CartesianMonoidalCategory A] [MonoidalClosed (Cᵒᵖ ⥤ A)] [HasSheafify J A]
(F G H : Sheaf J A) :
(F ⊗ G ⟶ H) ≃ (F ⟶ (ihom G).obj H)
Tag 0D7X, a lemma
Tag 0D7X in the Stacks Project.
CategoryTheory.OverShriek.sheafHomYonedaSheafifyNatIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Glueing/HomSheafLocalization.lean, line 66.
Stacks 0D7X. For an object
Uof a small site(C, J), the internal hom sheafSheafHom(h_U^\#, -)out of the sheafification of the representable presheafh_Uis the compositej_{U*} \circ j_U^{-1}: that is,SheafHom(h_U^\#, \mathcal{F}) = j_{U*}(\mathcal{F}|_{\mathcal{C}/U}), naturally in the sheaf\mathcal{F}.Both functors are right adjoint to
\mathcal{G} \mapsto h_U^\# \times \mathcal{G}, the first by Stacks 0BWQ and the second by the localization adjunctions together with Stacks 03EE, so they agree by uniqueness of right adjoints. This is the source's argument, whose last step is the Yoneda lemma.
noncomputable def sheafHomYonedaSheafifyNatIso :
SheafHomAdj.sheafHomFunctor ((presheafToSheaf J (Type u)).obj (yoneda.obj U)) ≅
localizationPullback U J ⋙ localizationPushforward U J
Tag 04TR, a lemma
Tag 04TR in the Stacks Project.
CategoryTheory.GrothendieckTopology.essSurj_toDescentData_pseudofunctorOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Glueing/GlueingSheaves.lean, line 839.
Glueing sheaves. Let
(C, J)be a site, let{f i : X i ⟶ S}be a covering of an objectSofC, and letAbe a category with limits of the relevant size. Then every glueing datum forA-valued sheaves with respect to{f i : X i ⟶ S}— a sheafF ion each slice siteC/X itogether with isomorphisms between the restrictions ofF iand ofF jover the overlaps, satisfying the cocycle condition over the triple overlaps — is isomorphic to the canonical glueing datum of a sheafFon the slice siteC/S, i.e. there exists such anFtogether with isomorphismsF|_{C/X i} ≅ F icompatible with the given ones over the overlaps.
public theorem essSurj_toDescentData_pseudofunctorOver {C : Type u} [Category.{v} C]
(J : GrothendieckTopology C) (A : Type u') [Category.{v'} A]
[HasLimitsOfSize.{max t u v, max t u v} A] {ι : Type t} {S : C} {X : ι → C} (f : ∀ i, X i ⟶ S)
(hf : Sieve.ofArrows X f ∈ J S) : ((J.pseudofunctorOver A).toDescentData f).EssSurj
Tag 04TS, a lemma
Tag 04TS in the Stacks Project.
CategoryTheory.GrothendieckTopology.isEquivalence_toDescentData_pseudofunctorOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Glueing/GlueingSheaves.lean, line 1041.
Sheaves on a slice site are glueing data. Let
(C, J)be a site, let{f i : X i ⟶ S}be a covering of an objectSofC, and letAbe a category with limits of the relevant size. Then the category ofA-valued sheaves on the slice siteC/Sis equivalent to the category of glueing data forA-valued sheaves with respect to{f i : X i ⟶ S}— a sheafF ion each slice siteC/X itogether with isomorphisms between the restrictions ofF iand ofF jover the overlaps, satisfying the cocycle condition over the triple overlaps — via the functor sending a sheafFonC/Sto its canonical glueing datum(F|_{C/X i}).
public theorem isEquivalence_toDescentData_pseudofunctorOver {C : Type u} [Category.{v} C]
(J : GrothendieckTopology C) (A : Type u') [Category.{v'} A]
[HasLimitsOfSize.{max u v, max u v} A] {ι : Type t} {S : C} {X : ι → C} (f : ∀ i, X i ⟶ S)
(hf : Sieve.ofArrows X f ∈ J S) : ((J.pseudofunctorOver A).toDescentData f).IsEquivalence
Tag 0GWK, a lemma
Tag 0GWK in the Stacks Project.
CategoryTheory.SiteGlueing.canonicalEquivalence, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Glueing/AbsoluteGlueingAnySite.lean, line 620.
Stacks 0GWK. For a site
C, with no smallness hypothesis and with sheaves of sets valued in an arbitrary universe, the category of sheaves onCis equivalent to the category of absolute glueing data, via the functor sending a sheaf to its canonical absolute glueing data.
noncomputable def canonicalEquivalence : Sheaf J (Type w) ≌ GlueingData.{w} J
Sources
Section7.27 More localization#
Section 7.27 of the Stacks Project, Tag 04IM. 5 tags here are carried by 13 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 03HT, a lemma
Tag 03HT in the Stacks Project.
CategoryTheory.OverShriek.isIso_ofRestricted_unit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/MoreLocalization.lean, line 205. The attribute's comment: “j_{U!}G(V) = ∐_{φ : V ⟶ U} G(V →φ U) for a subcanonical topology.”.
Let
Cbe a site, letUbe an object ofCwhose representable presheafh_Uis a sheaf (for instance because the topology is subcanonical), and letGbe a sheaf of sets onC/U. LetLbe a left adjoint of the restriction functorj_U^{-1} = J.overPullback : Sh(C) ⥤ Sh(C/U), i.e. letLbej_{U!}. Then the canonical map from the coproduct presheafV ↦ ∐_{φ : V ⟶ U} G(V →φ U)to the presheaf underlyingj_{U!}G, which overVsends a pair(φ, s)to the sectionsofj_{U!}G, is an isomorphism:j_{U!}G(V) = ∐_{φ ∈ Hom_C(V, U)} G(V →φ U).
public theorem isIso_ofRestricted_unit {C : Type u} [Category.{v} C] (J : GrothendieckTopology C)
(U : C) (hU : Presieve.IsSheaf J (yoneda.obj U))
{L : Sheaf (J.over U) (Type v) ⥤ Sheaf J (Type v)} (adj : L ⊣ J.overPullback (Type v) U)
(G : Sheaf (J.over U) (Type v)) :
IsIso (ofRestricted G.obj (F := (L.obj G).obj) (adj.unit.app G).hom)
Tag 03CE, a lemma
Tag 03CE in the Stacks Project.
StacksLocalizationProducts.bijective_left_comp_prodSnd, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/PushforwardAdjunction.lean, line 122. References: SGA 3 I (1.6), “i_S ⊣ p_S hom bijection”.
Stacks 03CE(1). The right adjoint of the localization functor
j_U = Over.forget U : C/U ⥤ Cisv : X ↦ X × U / U: forY/UinC/UandXinCthe map sending a morphismY ⟶ X × U / UoverUto its underlying morphism followed by the projection toXis a bijectionMor_{C/U}(Y/U, X × U/U) ≃ Mor_C(Y, X).This is the counit description
Over.forgetAdjStar_counit_appof Mathlib's adjunctionOver.forgetAdjStar U : Over.forget U ⊣ Over.star U.
theorem bijective_left_comp_prodSnd (Y : Over U) (X : C) :
Function.Bijective fun g : Y ⟶ (Over.star U).obj X => g.left ≫ prod.snd
StacksLocalizationProducts.isMorphismOfSites_star, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/PushforwardAdjunction.lean, line 138.
Stacks 03CE(2), first half. The functor
v = Over.star U : C ⥤ C/Udefines a morphism of sitesC/U → C: it is continuous, and the induced pullback on sheaves of sets is exact.Exactness holds because
vis a right adjoint, hence representably flat, so this is the criterionCategoryTheory.Functor.isMorphismOfSites_of_representablyFlat(Stacks 00X5).
theorem isMorphismOfSites_star : (Over.star U).IsMorphismOfSites J (J.over U)
StacksLocalizationProducts.sheafPushforwardOverForgetIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/PushforwardAdjunction.lean, line 145.
Stacks 03CE(2), second half. The pushforward
j_{U*}of the morphism of topoi attached to the continuous and cocontinuous functorj_Uagrees with the pushforwardv^sof the morphism of sites given byv = Over.star U; that is, the two morphisms of topoi coincide.
noncomputable def sheafPushforwardOverForgetIso :
(Over.forget U).sheafPushforwardCocontinuous (Type u) (J.over U) J ≅
(Over.star U).sheafPushforwardContinuous (Type u) J (J.over U)
StacksLocalizationProducts.sheafPullbackStarIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/PushforwardAdjunction.lean, line 153.
Stacks 03CE(2), second half. Dually, the pullback
v_s = f⁻¹of the morphism of sites given byv = Over.star Uis the restriction functorj_U⁻¹alongj_U = Over.forget U.
noncomputable def sheafPullbackStarIso :
(Over.star U).sheafPullback (Type u) J (J.over U) ≅
(Over.forget U).sheafPushforwardContinuous (Type u) (J.over U) J
StacksLocalizationProducts.sheafPushforwardObjEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/PushforwardAdjunction.lean, line 161.
Stacks 03CE(3). For a sheaf
FonC/Uthe sections ofj_{U*}Fover an objectXofCare the sections ofFoverX × U / U.
noncomputable def sheafPushforwardObjEquiv (F : Sheaf (J.over U) (Type u)) (X : C) :
(((Over.forget U).sheafPushforwardCocontinuous (Type u) (J.over U) J).obj F).obj.obj (op X) ≃
F.obj.obj (op ((Over.star U).obj X))
Tag 09W9, a lemma
Tag 09W9 in the Stacks Project.
StacksRelocalization.isMorphismOfSites_overPullback, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/OverPullbackMorphism.lean, line 43. References: SGA 4 IV (5.5), “loc(f) (5.5.2)”.
The functor
v = Over.pullback f : C/V ⥤ C/U, given on objects byX/V ↦ X ×_V U / U, defines a morphism of sitesC/U → C/V: it is continuous, and the induced pullback on sheaves of sets is exact.
theorem isMorphismOfSites_overPullback :
(Over.pullback f).IsMorphismOfSites (J.over V) (J.over U)
StacksRelocalization.sheafPushforwardOverMapIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/OverPullbackMorphism.lean, line 51.
The pushforward
j_*of the morphism of topoi attached to the continuous and cocontinuous functorj = Over.map fagrees with the pushforwardv^sof the morphism of sites given byv = Over.pullback f; that is, the two morphisms of topoi coincide.
noncomputable def sheafPushforwardOverMapIso :
(Over.map f).sheafPushforwardCocontinuous (Type u) (J.over U) (J.over V) ≅
(Over.pullback f).sheafPushforwardContinuous (Type u) (J.over V) (J.over U)
StacksRelocalization.sheafPullbackOverPullbackIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/OverPullbackMorphism.lean, line 59. References: SGA 4 IV (5.5), “f^* = restriction”.
The pullback
v_s = f⁻¹of the morphism of sites given byv = Over.pullback fis the restriction functorj⁻¹alongj = Over.map f.
noncomputable def sheafPullbackOverPullbackIso :
(Over.pullback f).sheafPullback (Type u) (J.over V) (J.over U) ≅
(Over.map f).sheafPushforwardContinuous (Type u) (J.over U) (J.over V)
StacksRelocalization.sheafPushforwardObjEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/OverPullbackMorphism.lean, line 67. References: SGA 4 IV (5.5), “f_* formula (5.5.3)”.
For a sheaf
FonC/Uthe sections ofj_*Fover an objectX/VofC/Vare the sections ofFoverX ×_V U / U.
noncomputable def sheafPushforwardObjEquiv (F : Sheaf (J.over U) (Type u)) (X : Over V) :
(((Over.map f).sheafPushforwardCocontinuous (Type u) (J.over U) (J.over V)).obj F).obj.obj
(op X) ≃
F.obj.obj (op ((Over.pullback f).obj X))
Tag 00Y2, a lemma
Tag 00Y2 in the Stacks Project.
CategoryTheory.GrothendieckTopology.isIso_unit_and_sheafAdjunctionCocontinuous_counit_of_isSubterminal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/MoreLocalization.lean, line 91. The attribute's comment: “if every object of C has at most one morphism to U, the canonical maps F ⟶ j_U^{-1}j_{U!}F and j_U^{-1}j_{U*}F ⟶ F are isomorphisms, for coefficients in an arbitrary category A”. References: SGA 4 VIII (5.7), “open immersion case”; SGA 4 I (5.6), “special case”.
Let
Cbe a site, and letUbe an object ofCsuch that every object ofChas at most one morphism toU, i.e.Uis subterminal. LetLbe a left adjoint ofj_U^{-1} = J.overPullback A U : Sh(C) ⥤ Sh(C/U), i.e. letLbej_{U!}, and letj_{U*} = {}_pj_Ube the pushforward along the cocontinuous localization functor. Then the canonical mapsF ⟶ j_U^{-1}j_{U!}Fandj_U^{-1}j_{U*}F ⟶ Fare isomorphisms for every sheafFonC/U: they are the unit ofj_{U!} ⊣ j_U^{-1}and the counit ofj_U^{-1} ⊣ j_{U*}. Equivalently,j_{U!}andj_{U*}are fully faithful.
public theorem isIso_unit_and_sheafAdjunctionCocontinuous_counit_of_isSubterminal {C : Type u}
[Category.{v} C] (J : GrothendieckTopology C) (U : C) (hU : IsSubterminal U) (A : Type w)
[Category.{w'} A] [∀ (F : (Over U)ᵒᵖ ⥤ A), (Over.forget U).op.HasPointwiseRightKanExtension F]
{L : Sheaf (J.over U) A ⥤ Sheaf J A} (adj : L ⊣ J.overPullback A U) :
IsIso adj.unit ∧
IsIso ((Over.forget U).sheafAdjunctionCocontinuous A (J.over U) J).counit
Tag 0EYV, a lemma
Tag 0EYV in the Stacks Project.
CategoryTheory.GrothendieckTopology.overMapPullbackSquare, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/MoreLocalization.lean, line 332. The attribute's comment: “The relocalization morphisms of a commutative square form a commutative square of topoi: the two composites j_{V'/V}^{-1} ⋙ j_{U'/V'}^{-1} and j_{U/V}^{-1} ⋙ j_{U'/U}^{-1} of inverse images are canonically isomorphic.”.
The square of topoi attached to a commutative square
U' --a--> U |b |c V' --d--> Vof
Cby the relocalization morphisms commutes, in the form of the commutation isomorphismj_{V'/V}^{-1} ⋙ j_{U'/V'}^{-1} ≅ j_{U/V}^{-1} ⋙ j_{U'/U}^{-1}between the two composite inverse images.
public def overMapPullbackSquare (sq : CommSq a b c d) :
J.overMapPullback A d ⋙ J.overMapPullback A b ≅
J.overMapPullback A c ⋙ J.overMapPullback A a
CategoryTheory.GrothendieckTopology.isIso_overMapPushforwardBaseChange, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/MoreLocalization.lean, line 432. The attribute's comment: “For a cartesian square, the base change transformation j_{V'/V}^{-1} ∘ j_{U/V,*} ⟶ j_{U'/V',*} ∘ j_{U'/U}^{-1} of the relocalization morphisms is an isomorphism.”.
If the square
U' --a--> U |b |c V' --d--> Vof
Cis cartesian, then the relocalization morphisms satisfy base change,j_{V'/V}^{-1} ∘ j_{U/V, *} = j_{U'/V', *} ∘ j_{U'/U}^{-1}: the base change transformationoverMapPushforwardBaseChangeis an isomorphism.
public theorem isIso_overMapPushforwardBaseChange (hsq : IsPullback a b c d)
[∀ (F : (Over U)ᵒᵖ ⥤ A), (Over.map c).op.HasPointwiseRightKanExtension F]
[∀ (F : (Over U')ᵒᵖ ⥤ A), (Over.map b).op.HasPointwiseRightKanExtension F] :
IsIso (J.overMapPushforwardBaseChange A hsq.toCommSq).natTrans
Sources
Section7.28 Localization and morphisms#
Section 7.28 of the Stacks Project, Tag 04I8. 7 tags here are carried by 23 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 03CF, a lemma
Tag 03CF in the Stacks Project.
CategoryTheory.Functor.isContinuous_overPost_of_preservesPullbacks, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/Continuous.lean, line 82. The attribute's comment: “Continuity of the functor u' : D/V ⥤ C/U, V'/V ↦ u(V')/U, which the proof of 03CF asserts without argument and which is the input to every other clause. Proved here for u continuous with fibre products which u preserves, i.e. for Stacks' notion of continuity on sites with fibre products; see Functor.isContinuous_overPost_of_flat for the flat version and the module docstring for why bare Functor.IsContinuous is not known to suffice.”.
Let
u : C ⥤ Dbe a continuous functor of sites, letChave pullbacks and letupreserve them. ThenOver.post u : Over V ⥤ Over (u.obj V)is continuous for the localized topologiesJ.over VandK.over (u.obj V).
theorem isContinuous_overPost_of_preservesPullbacks [HasPullbacks C] (u : C ⥤ D)
[PreservesLimitsOfShape WalkingCospan u] [u.IsContinuous J K] (V : C) :
(Over.post (X := V) u).IsContinuous (J.over V) (K.over (u.obj V))
CategoryTheory.Functor.isContinuous_overPost_of_isContinuous, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSitesGeneral.lean, line 144. The attribute's comment: “Clause (a), continuity half: u' = Over.post u is continuous whenever u is, with no finite-limit or flatness hypothesis. This supersedes the flatness-based Functor.isContinuous_overPost_of_flat.”.
Stacks 03CF, continuity of
u', in the generality of 03CF. Ifu : C ⥤ Dis continuous then so is the localized functorOver.post u : Over V ⥤ Over (u.obj V).By Stacks 00Y1 every sheaf on
D/Uis the fibre sheaf of aK-sheaf overh_U^#(OverShriek.sheafUnit), and the restriction of such a fibre sheaf alongOver.post uis the fibre presheaf cut out onC/Vby the restrictions alongu, which is a sheaf byOverShriek.isSheaf_fiber_overPost.
theorem Functor.isContinuous_overPost_of_isContinuous {C : Type u} [SmallCategory C] {D : Type u}
[SmallCategory D] (J : GrothendieckTopology C) (K : GrothendieckTopology D) (u : C ⥤ D)
[u.IsContinuous J K] (V : C) :
(Over.post (X := V) u).IsContinuous (J.over V) (K.over (u.obj V))
CategoryTheory.Functor.isMorphismOfSites_overPost_of_isMorphismOfSites, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSitesGeneral.lean, line 285. The attribute's comment: “Clause (a): the localized functor u' = Over.post u defines a morphism of sites D/u(V) → C/V, assuming only that u does. This is the clause Stacks derives from clause (c) via 00Y1, and which Functor.isMorphismOfSites_overPost covers only under 03EF's finite-limit and left-exactness hypotheses.”.
Stacks 03CF, clause (a), in the generality of 03CF. If
u : C ⥤ Ddefines a morphism of sitesf : D → CandV : C, then the localized functoru' = Over.post u : Over V ⥤ Over (u V)defines a morphism of sitesf' : D/u(V) → C/V.Continuity is
Functor.isContinuous_overPost_of_isContinuous. Exactness ofu'_sis checked on the terminal object and on fibre products: the former byFunctor.preservesTerminal_sheafPullback_of_isTerminal, sinceOver.post ucarries𝟙_Vto𝟙_{u V}; the latter bysheafPullbackOverPostIso,u'_s ⋙ j_{U!} ≅ j_{V!} ⋙ u_s, together with the fact thatj_{V!}preserves andj_{U!}reflects connected limits (Stacks 00Y1) and thatu_sis left exact by hypothesis.
theorem Functor.isMorphismOfSites_overPost_of_isMorphismOfSites {C : Type u} [SmallCategory C]
{D : Type u} [SmallCategory D] (J : GrothendieckTopology C) (K : GrothendieckTopology D)
(u : C ⥤ D) (V : C) (h : u.IsMorphismOfSites J K) :
(Over.post (X := V) u).IsMorphismOfSites (J.over V) (K.over (u.obj V))
CategoryTheory.sheafPushforwardContinuous_overPost_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/Pushforward.lean, line 107. The attribute's comment: “Clause (d): the identity f'_* j_U^{-1} = j_V^{-1} f_*, for sheaves valued in any category; also the last sentence of 03EF. Clause (a) is in Sites/SlicePost/MorphismOfSitesGeneral.lean and clauses (b) and (c) are in Sites/SliceTopos/InverseImage.lean, all three in 03CF's own generality.”.
Stacks 03CF, last assertion:
f'_* j_U^{-1} = j_V^{-1} f_*, as a strict equality of functorsSheaf K A ⥤ Sheaf (J.over V) Afor an arbitrary target categoryA.In Lean's left-to-right composition order the left-hand side below is
f'_* ∘ j_U^{-1}and the right-hand side isj_V^{-1} ∘ f_*. Both are precomposition with the opposite of a functorOver V ⥤ D, and the two functors agree on the nose byOver.post_forget_eq_forget_comp; this is Stacks' remark that the identity "holds even for presheaves".Clause (a) of Stacks 03CF, that
f'is a morphism of sites, isFunctor.isMorphismOfSites_overPost_of_isMorphismOfSitesinStacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSitesGeneral.lean, in the generality of 03CF. Clauses (b) and (c) are proved inStacksFrontier/CategoryTheory/Sites/SliceTopos/InverseImage.lean, also in 03CF's own generality.
theorem sheafPushforwardContinuous_overPost_eq :
(Over.forget (u.obj V)).sheafPushforwardContinuous A (K.over (u.obj V)) K ⋙
(Over.post (X := V) u).sheafPushforwardContinuous A (J.over V) (K.over (u.obj V)) =
u.sheafPushforwardContinuous A J K ⋙
(Over.forget V).sheafPushforwardContinuous A (J.over V) J
CategoryTheory.sheafPullbackOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/Pushforward.lean, line 131. The attribute's comment: “The isomorphism j_{U!}(f')^{-1} ≅ f^{-1}j_{V!} of the proof of 03CF, deduced from clause (d) by uniqueness of left adjoints. As in the clause note on sheafPushforwardContinuous_overPost_eq, clauses (b) and (c) of 03CF are not covered; they are in Sites/SliceTopos/InverseImage.lean.”.
The lower-shriek form of Stacks 03CF's computation:
(f')^{-1} j_{U!} ≅ j_{V!} f^{-1}.This is the isomorphism
j_{U!}(f')^{-1}H ≅ f^{-1}j_{V!}Hdisplayed in the proof of Stacks 03CF, obtained here not from Stacks 00WY but by taking left adjoints insheafPushforwardContinuous_overPost_eq:(f')^{-1} ⋙ j_{U!}is left adjoint toj_U^{-1} ⋙ f'_*andj_{V!} ⋙ f^{-1}is left adjoint tof_* ⋙ j_V^{-1}, and those two right adjoints are equal. Uniqueness of left adjoints does the rest.
noncomputable def sheafPullbackOverPostIso :
(Over.post (X := V) u).sheafPullback A (J.over V) (K.over (u.obj V)) ⋙
(Over.forget (u.obj V)).sheafPullback A (K.over (u.obj V)) K ≅
(Over.forget V).sheafPullback A (J.over V) J ⋙ u.sheafPullback A J K
CategoryTheory.SliceTopos.sheafFunctorToOverCompOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/InverseImage.lean, line 223. The attribute's comment: “Clause (c): under 00Y1's identifications (f')⁻¹ sends (H ⟶ h_V^#) to (f⁻¹H ⟶ h_U^#). Proved in 03CF's own generality, from u.IsMorphismOfSites alone, and with the identification f⁻¹h_V^# ≅ h_U^# given by yonedaIso, which is NOT proved equal to 04D3's sheafPullbackSheafifyYonedaIso.”.
Stacks 03CF, clause (c). Under the identifications
Sh(C/V) = Sh(C)/h_V^#andSh(D/U) = Sh(D)/h_U^#of Stacks 00Y1, the inverse image(f')⁻¹is "applyf⁻¹to the sheaf and to its structure map":The two sides agree after(f')⁻¹ (H ⟶ h_V^#) = (f⁻¹H ⟶ f⁻¹h_V^# ≅ h_U^#) .Over.forgetbyunderlyingIso, and byOver.comp_hom_of_terminalthe remaining triangle need only be checked at the terminal sheaf, whereyonedaIsowas defined to make it commute.
def sheafFunctorToOverCompOverPostIso (hu : u.IsMorphismOfSites J K) :
(Over.post (X := V) u).sheafPullback (Type u) (J.over V) (K.over (u.obj V)) ⋙
sheafFunctorToOver (U := u.obj V) K ≅
sheafFunctorToOver (U := V) J ⋙ Over.post (u.sheafPullback (Type u) J K) ⋙
Over.map (yonedaIso J K u V hu).hom
CategoryTheory.SliceTopos.overPullbackCompSheafPullbackOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/InverseImage.lean, line 291. The attribute's comment: “Clause (b): the square of topoi commutes, (f')⁻¹ j_V⁻¹ ≅ j_U⁻¹ f⁻¹. Proved in 03CF's own generality, from u.IsMorphismOfSites alone. Clause (a) is Functor.isMorphismOfSites_overPost_of_isMorphismOfSites; clause (d) is sheafPushforwardContinuous_overPost_eq.”.
Stacks 03CF, clause (b): the square of topoi commutes.
Unlike clause (d) this pairs two inverse images, so it is not a statement about right adjoints and does not follow from(f')⁻¹ j_V⁻¹ = j_U⁻¹ f⁻¹ .sheafPushforwardContinuous_overPost_eq. It follows from clause (c) instead:Φ_Uis fully faithful, so it is enough to prove the square after applying it, and there Stacks 04IQ (OverShriek.overPullbackCompSheafFunctorToOverIso) turns bothj_V⁻¹ Φ_Vandj_U⁻¹ Φ_UintotoOver, i.e. into "product withh_V^#" and "product withh_U^#". What is left istoOverCompOverPostIso, thatf⁻¹carries one product to the other.The statement does not mention the identification
f⁻¹h_V^# ≅ h_U^#, so — unlike clause (c) — it does not depend on which identification is used.
def overPullbackCompSheafPullbackOverPostIso (hu : u.IsMorphismOfSites J K) :
J.overPullback (Type u) V ⋙
(Over.post (X := V) u).sheafPullback (Type u) (J.over V) (K.over (u.obj V)) ≅
u.sheafPullback (Type u) J K ⋙ K.overPullback (Type u) (u.obj V)
CategoryTheory.SliceTopos.overPullbackCompSheafPullbackOverPostIso_hom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/InverseImage.lean, line 581. The attribute's comment: “Clause (b) is the Beck-Chevalley mate of clause (d), which is what makes its components computable.”.
Stacks 03CF's clause (b) is the Beck–Chevalley mate of its clause (d).
The comparison
(f')^{-1}j_V^{-1} ≅ j_U^{-1}f^{-1}built from Stacks 00Y1 coincides with the mate of the strict identityf'_*j_U^{-1} = j_V^{-1}f_*. Sincej_{U!} ⊣ j_U^{-1}is a bijection the two transformations may be compared through their adjuncts, and those agree byshriek_overPullbackCompSheafPullbackOverPostIso_hom_app_comp_counitandoverPullbackCompSheafPullbackOverPostMate_comp_counit.This is what gives clause (b) computable components: every statement about the comparison can now be read off the unit and counit composite defining the mate.
theorem overPullbackCompSheafPullbackOverPostIso_hom (hu : u.IsMorphismOfSites J K) :
(overPullbackCompSheafPullbackOverPostIso J K u V hu).hom =
overPullbackCompSheafPullbackOverPostMate J K u V
Tag 03EF, a lemma
Tag 03EF in the Stacks Project.
CategoryTheory.Functor.isContinuous_overPost_of_flat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/Continuous.lean, line 97. The attribute's comment: “Continuity of u' : D/V ⥤ C/U under 03EF's hypotheses: 03EF assumes u left exact between sites with all finite limits, whence Over.post u is flat and this lemma applies. This is the continuity half of Functor.isMorphismOfSites_overPost.”.
Let
u : C ⥤ Dbe a continuous functor of sites such thatOver.post u : Over V ⥤ Over (u.obj V)is representably flat. ThenOver.post uis continuous for the localized topologiesJ.over VandK.over (u.obj V).
theorem isContinuous_overPost_of_flat (u : C ⥤ D) [u.IsContinuous J K] (V : C)
[RepresentablyFlat (Over.post (X := V) u)] :
(Over.post (X := V) u).IsContinuous (J.over V) (K.over (u.obj V))
CategoryTheory.starCompOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSites.lean, line 78. The attribute's comment: “Commutativity of the diagram of 03EF: the two composites C ⥤ Over (u.obj V) of continuous functors around the square are isomorphic, which since morphisms of sites compose by composing their continuous functors (03CC) is what it means for the square of morphisms of sites to commute. The final clause of 03EF, that the induced diagram of topoi equals the diagram of 03CF, is NOT covered — see the module docstring.”.
For a functor
u : C ⥤ Dpreserving binary products andV : C, the isomorphismOver.star V ⋙ Over.post u ≅ u ⋙ Over.star (u.obj V)of functorsC ⥤ Over (u.obj V), whose component atXisLimits.prodComparison u V X : u.obj (V ⨯ X) ⟶ u.obj V ⨯ u.obj X.
noncomputable def starCompOverPostIso [HasBinaryProducts C] [HasBinaryProducts D] (u : C ⥤ D)
[PreservesLimitsOfShape (Discrete WalkingPair) u] (V : C) :
Over.star V ⋙ Over.post (X := V) u ≅ u ⋙ Over.star (u.obj V)
CategoryTheory.Functor.isMorphismOfSites_overPost, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSites.lean, line 110. The attribute's comment: “The left vertical arrow of 03EF's diagram: u' = Over.post u is a morphism of sites D/U → C/V under 03EF's hypotheses. This is 03CF's clause (a) in the special case where 03EF's hypotheses hold; clause (a) in the generality of 03CF is Functor.isMorphismOfSites_overPost_of_isMorphismOfSites in Sites/SlicePost/MorphismOfSitesGeneral.lean, proved there through 00Y1 as Stacks does.”. References: SGA 4 VI (7.4.13.6), “special case”.
If
CandDhave all finite limits andu : C ⥤ Dis continuous and commutes with finite limits, then forV : Cthe localized functorOver.post u : Over V ⥤ Over (u.obj V)defines a morphism of sitesD/U → C/V, whereU = u.obj V.
theorem isMorphismOfSites_overPost [HasFiniteLimits C] [HasFiniteLimits D] (u : C ⥤ D)
[u.IsContinuous J K] [PreservesFiniteLimits u] (V : C) :
(Over.post (X := V) u).IsMorphismOfSites (J.over V) (K.over (u.obj V))
CategoryTheory.Functor.isMorphismOfSites_star, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSites.lean, line 121. The attribute's comment: “The two horizontal arrows j_U and j_V of 03EF's diagram: the localization functors X ↦ X ⨯ U of 03CE are morphisms of sites. Stated once, for an arbitrary site and object; the diagram of 03EF instantiates it at (C, J, V) and at (D, K, u.obj V).”.
On a site with binary products, the localization functor
Over.star X : C ⥤ Over X,Y ↦ (Y ⨯ X ⟶ X), defines a morphism of sitesC/X → C.
theorem isMorphismOfSites_star [HasBinaryProducts C] (X : C) :
(Over.star X).IsMorphismOfSites J (J.over X)
CategoryTheory.sheafPushforwardContinuousStarOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SlicePost/MorphismOfSites.lean, line 146. The attribute's comment: “The induced diagram of morphisms of topoi commutes, on the pushforward side, for sheaves valued in any category. 03EF's final clause — that this diagram is EQUAL to 03CF's diagram of topoi — is NOT covered; 03CF's clause (b) is now proved in Sites/SliceTopos/InverseImage.lean, leaving one equation.”.
The isomorphism
(Over.post u)_* ⋙ (Over.star V)_* ≅ (Over.star U)_* ⋙ u_* ,of functors
Sheaf (K.over U) A ⥤ Sheaf J A, forU = u.obj Vand any categoryA, induced bystarCompOverPostIso: the square of pushforwards on sheaves commutes.
noncomputable def sheafPushforwardContinuousStarOverPostIso [HasBinaryProducts C]
[HasBinaryProducts D] (u : C ⥤ D) [PreservesLimitsOfShape (Discrete WalkingPair) u] (V : C)
[u.IsContinuous J K]
[(Over.post (X := V) u).IsContinuous (J.over V) (K.over (u.obj V))]
(A : Type*) [Category A] :
(Over.post (X := V) u).sheafPushforwardContinuous A (J.over V) (K.over (u.obj V)) ⋙
(Over.star V).sheafPushforwardContinuous A J (J.over V) ≅
(Over.star (u.obj V)).sheafPushforwardContinuous A K (K.over (u.obj V)) ⋙
u.sheafPushforwardContinuous A J K
Tag 04IN, a lemma
Tag 04IN in the Stacks Project.
MorphismOfTopoi.relocalize, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/RelocalizationMorphism.lean, line 163. The attribute's comment: “the morphism of topoi f_c and the factorization f_c = f' ∘ j_{U/u(V)}”.
Stacks 04IN. Let
f : E ⟶ Dbe a morphism of topoi,Van object ofD,Uan object ofEandc : U ⟶ f⁻¹V. The morphism of topoif_c : E/U ⟶ D/Vis the compositionof the relocalization morphismf_c = f' ∘ j_{U/f⁻¹V}j_{U/f⁻¹V} : E/U ⟶ E/f⁻¹Vof Stacks 03EH with the morphismf' : E/f⁻¹V ⟶ D/Vof Stacks 04H1 (03CF); this factorization is Stacks 04IN's second assertion, and holds here by construction. Consequentlysee(f_c)⁻¹ = Over.post f⁻¹ ⋙ Over.pullback c ,relocalize_inverseImage_obj.
noncomputable def relocalize {V : D} {U : E} (c : U ⟶ f.inverseImage.obj V)
{p : Over U ⥤ Over (f.inverseImage.obj V)} (adj : Over.pullback c ⊣ p) :
MorphismOfTopoi (Over U) (Over V)
MorphismOfTopoi.relocalize_inverseImage_obj, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/RelocalizationMorphism.lean, line 175. The attribute's comment: “the description of (f_c)^{-1} as a fibre product”.
Stacks 04IN, the description of
(f_c)⁻¹: an objectφ : H ⟶ VofD/Vis sent to the fibre productthe base change along(f⁻¹H ×_{f⁻¹φ, f⁻¹V, c} U ⟶ U) ,coff⁻¹φ.
lemma relocalize_inverseImage_obj {V : D} {U : E} (c : U ⟶ f.inverseImage.obj V)
{p : Over U ⥤ Over (f.inverseImage.obj V)} (adj : Over.pullback c ⊣ p) (H : Over V) :
(f.relocalize c adj).inverseImage.obj H =
Over.mk (pullback.snd (f.inverseImage.map H.hom) c)
MorphismOfTopoi.relocalizeInverseImageIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/RelocalizationMorphism.lean, line 191. The attribute's comment: “commutativity of the first square, on inverse images”.
Stacks 04IN, commutativity of the first square:
j_U⁻¹ ∘ f⁻¹ = (f_c)⁻¹ ∘ j_V⁻¹, wherej_U⁻¹ = toOver Uandj_V⁻¹ = toOver V.The proof is the one Stacks gives: the square of Stacks 04H1 for
f', namelyf⁻¹ ⋙ toOver (f⁻¹V) ≅ toOver V ⋙ (f')⁻¹, is whiskered with the base changej_{U/f⁻¹V}⁻¹ = Over.pullback c, and the left-hand side collapses bytoOverCompPullbackIso, the identityj_{U/f⁻¹V}⁻¹ ∘ j_{f⁻¹V}⁻¹ = j_U⁻¹of Stacks 03EH.
noncomputable def relocalizeInverseImageIso {V : D} {U : E} (c : U ⟶ f.inverseImage.obj V)
{p : Over U ⥤ Over (f.inverseImage.obj V)} (adj : Over.pullback c ⊣ p) :
f.inverseImage ⋙ toOver U ≅ toOver V ⋙ (f.relocalize c adj).inverseImage
MorphismOfTopoi.relocalizeCompPullbackIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/RelocalizationMorphism.lean, line 214. The attribute's comment: “commutativity of the last square, on inverse images”.
Stacks 04IN, commutativity of the last square: given
b : V' ⟶ V,a : U' ⟶ Uandc' : U' ⟶ f⁻¹V'withc' ≫ f⁻¹b = a ≫ c, the squarecommutes, i.e.E/U' --j_{U'/U}--> E/U |f_{c'} |f_c D/V' --j_{V'/V}--> D/V(f_c)⁻¹ ∘ j_{U'/U}⁻¹ = j_{V'/V}⁻¹ ∘ (f_{c'})⁻¹on inverse images.This is Stacks' equality
obtained here by Beck–Chevalley forf⁻¹H ×_{f⁻¹V, c} U ×_U U' = f⁻¹(H ×_V V') ×_{f⁻¹V', c'} U' ,Over.post f⁻¹(Over.postPullbackIso, which uses thatf⁻¹is left exact), the composition ruleOver.pullbackCompfor base change, and the hypothesisc' ≫ f⁻¹b = a ≫ c.
noncomputable def relocalizeCompPullbackIso {V V' : D} (b : V' ⟶ V) {U U' : E} (a : U' ⟶ U)
(c : U ⟶ f.inverseImage.obj V) (c' : U' ⟶ f.inverseImage.obj V')
(hc : c' ≫ f.inverseImage.map b = a ≫ c)
{p : Over U ⥤ Over (f.inverseImage.obj V)} (adj : Over.pullback c ⊣ p)
{p' : Over U' ⥤ Over (f.inverseImage.obj V')} (adj' : Over.pullback c' ⊣ p') :
Over.pullback b ⋙ (f.relocalize c' adj').inverseImage ≅
(f.relocalize c adj).inverseImage ⋙ Over.pullback a
Tag 03EG, a lemma
Tag 03EG in the Stacks Project.
overPost_comp_forget, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LocalizationComposite.lean, line 103. The attribute's comment: “the square of categories commutes: u' ⋙ j_V = j_U ⋙ u”.
Stacks 03EG, the square of categories. With
V = u(U), the localized functoru' = Over.post u : C/U ⥤ D/Vand the localization functorsj_U = Over.forget Uandj_V = Over.forget Vform a commutative square,u' ⋙ j_V = j_U ⋙ u. Stacks calls this "clear"; in Lean the two composites are equal byrfl.
theorem overPost_comp_forget :
(Over.post u : Over U ⥤ Over (u.obj U)) ⋙ Over.forget (u.obj U) = Over.forget U ⋙ u
isCocontinuous_overPost, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LocalizationComposite.lean, line 118. The attribute's comment: “the left vertical arrow u' is cocontinuous”.
Stacks 03EG, the mathematical content. If
u : C ⥤ Dis cocontinuous then so is the localized functoru' = Over.post u : C/U ⥤ D/u(U), for the localized topologiesJ.over UandK.over (u.obj U).Stacks proves this by transferring refinement data verbatim: a covering of
u(U')/u(U)inD/u(U)is in particular a covering ofu(U')inD, cocontinuity ofurefines itsu-image by a covering{U'_i → U'}ofC, and the very same index map and comparison morphisms exhibit the refinement after every object is viewed overU, resp. overu(U). In Mathlib's sieve-theoretic formulation this isCategoryTheory.GrothendieckTopology.instIsCocontinuousOverObjPostOver.
theorem isCocontinuous_overPost :
(Over.post u : Over U ⥤ Over (u.obj U)).IsCocontinuous (J.over U) (K.over (u.obj U))
sheafPushforwardCocontinuousOverPostIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/LocalizationComposite.lean, line 133. The attribute's comment: “the square of topoi commutes: f'_* ⋙ j_{V*} ≅ j_{U*} ⋙ f_*”.
Stacks 03EG, the square of topoi. Let
f : Sh(C) ⟶ Sh(D)andf' : Sh(C/U) ⟶ Sh(D/u(U))be the morphisms of topoi attached touand tou' = Over.post uby Stacks 00XO, and letj_U : Sh(C/U) ⟶ Sh(C)andj_V : Sh(D/u(U)) ⟶ Sh(D)be those attached to the localization functors. Then the square of topoi commutes: there is a natural isomorphismf'_* ⋙ j_{V*} ≅ j_{U*} ⋙ f_*of functorsSh(C/U) ⥤ Sh(D).Both composites compute the direct image of one and the same functor
C/U ⥤ D, sinceu' ⋙ j_V = j_U ⋙ ubyoverPost_comp_forget; the isomorphism is therefore obtained by comparing each side with that direct image using Stacks 03L5.
noncomputable def sheafPushforwardCocontinuousOverPostIso :
(Over.post u : Over U ⥤ Over (u.obj U)).sheafPushforwardCocontinuous (Type u)
(J.over U) (K.over (u.obj U)) ⋙
(Over.forget (u.obj U)).sheafPushforwardCocontinuous (Type u) (K.over (u.obj U)) K ≅
(Over.forget U).sheafPushforwardCocontinuous (Type u) (J.over U) J ⋙
u.sheafPushforwardCocontinuous (Type u) J K
Tag 0D5R, a lemma
Tag 0D5R in the Stacks Project.
CategoryTheory.Functor.exists_grothendieckTopology_costructuredArrow, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/AndMorphisms.lean, line 551. The attribute's comment: “The site of pairs (U, ψ : u(U) → V) for a cocontinuous u: j is continuous and cocontinuous, u' is cocontinuous, the resulting square of topoi commutes and f'_* j⁻¹ = j_V⁻¹ f_*. For sheaves of sets on small sites.”. References: SGA 3 IV (4.5.1), “partial, special case”; SGA 4 III (5.2), “special case”.
Let
(C, J)and(D, K)be sites, letu : C ⥤ Dbe cocontinuous and letVbe an object ofD. Let{}^u_V I = CostructuredArrow u Vbe the category of pairs(U, ψ : u(U) ⟶ V)of Section 00XF, with the two projectionsj = CostructuredArrow.proj u V,(U, ψ) ↦ U, andu' = CostructuredArrow.toOver u V,(U, ψ) ↦ (ψ : u(U) ⟶ V). Then the squarecommutes, and declaring a sieve of{}^u_V I --j--> C | | u' u v v D/V --j_V---> D(U, ψ)to be covering when its image underjis a covering sieve ofU:
- this is a Grothendieck topology
Hon{}^u_V I, i.e.{}^u_V Iis a site;jis continuous and cocontinuous;u'is cocontinuous;- the induced square of topoi commutes,
j_* ⋙ f_* ≅ f'_* ⋙ j_{V*}, wherefandf'are the morphisms of topoi of Stacks 00XO attached to the cocontinuous functorsuandu'; andf'_* ∘ j⁻¹ = j_V⁻¹ ∘ f_*, where the inverse images of the continuous and cocontinuous functorsjandj_Vare restriction (Stacks 00XR).
public theorem exists_grothendieckTopology_costructuredArrow {C : Type u} [SmallCategory C]
{D : Type u} [SmallCategory D] (J : GrothendieckTopology C) (K : GrothendieckTopology D)
(u : C ⥤ D) [u.IsCocontinuous J K] (V : D) :
CostructuredArrow.proj u V ⋙ u = CostructuredArrow.toOver u V ⋙ Over.forget V ∧
∃ H : GrothendieckTopology (CostructuredArrow u V),
(∀ (X : CostructuredArrow u V) (S : Sieve X),
S ∈ H X ↔ Sieve.functorPushforward (CostructuredArrow.proj u V) S ∈ J X.left) ∧
∃ (_ : (CostructuredArrow.proj u V).IsContinuous H J) (_ :
(CostructuredArrow.proj u V).IsCocontinuous H J) (_ :
(CostructuredArrow.toOver u V).IsCocontinuous H (K.over V)),
Nonempty
((CostructuredArrow.proj u V).sheafPushforwardCocontinuous (Type u) H J ⋙
u.sheafPushforwardCocontinuous (Type u) J K ≅
(CostructuredArrow.toOver u V).sheafPushforwardCocontinuous (Type u) H
(K.over V) ⋙
(Over.forget V).sheafPushforwardCocontinuous (Type u) (K.over V) K) ∧
Nonempty
((CostructuredArrow.proj u V).sheafPushforwardContinuous (Type u) H J ⋙
(CostructuredArrow.toOver u V).sheafPushforwardCocontinuous (Type u) H
(K.over V) ≅
u.sheafPushforwardCocontinuous (Type u) J K ⋙
(Over.forget V).sheafPushforwardContinuous (Type u) (K.over V) K)
Tag 0FN1, a lemma
Tag 0FN1 in the Stacks Project.
CategoryTheory.Functor.nonempty_sheafPushforwardContinuousCompCocontinuousIso_and_leftAdjointCompPullbackIso_of_final, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/AndMorphisms.lean, line 214. The attribute's comment: “Beck–Chevalley for a commutative square of sites whose vertical functors are cocontinuous and whose horizontal functors are continuous: if the comparison functors {}^{u'}_{V'} I ⥤ {}^u_{v(V')} I are all cofinal then f'_* (g')⁻¹ = g⁻¹ f_*, and g'_! (f')⁻¹ = f⁻¹ g_! whenever the relevant left adjoints exist — a hypothesis of the second conjunct only, the first equality being the cofinality content and using no adjoint. For coefficients in an arbitrary category, the source's sheaves of sets being the case A = Type u; cocontinuity of the horizontal functors is not needed once their inverse images are read as restriction (Stacks 00XR).”.
Let
(C', J'),(C, J),(D', K'),(D, K)be sites and consider a square of functorswithC' --v'--> C | | u' u v v D' --v---> Du' ⋙ v = v' ⋙ u, whereuandu'are cocontinuous — giving rise to morphisms of topoifandf'withf_* = {}_su,f'_* = {}_su'(Stacks 00XO) — andvandv'are continuous, so thatg⁻¹ = v^pand(g')⁻¹ = (v')^pare restriction (Stacks 00XR). Assume that for every objectV'ofD'the comparison functoron the categories of Section 00XF is cofinal, i.e. final. Then{}^{u'}_{V'} I ⥤ {}^u_{v(V')} I, (U', ψ) ↦ (v'(U'), v(ψ) : u(v'(U')) = v(u'(U')) ⟶ v(V')),f'_* ∘ (g')⁻¹ ≅ g⁻¹ ∘ f_*, and moreoverg'_! ∘ (f')⁻¹ ≅ f⁻¹ ∘ g_!whenever the two restrictions have left adjointsg_!,g'_!and the two pushforwards have left adjointsf⁻¹,(f')⁻¹. This holds for sheaves with values in an arbitrary categoryA.
public theorem
nonempty_sheafPushforwardContinuousCompCocontinuousIso_and_leftAdjointCompPullbackIso_of_final
{C' : Type u₁} [Category.{v₁} C'] {C : Type u₂} [Category.{v₂} C] {D' : Type u₃}
[Category.{v₃} D'] {D : Type u₄} [Category.{v₄} D] (A : Type u₅) [Category.{v₅} A]
(J' : GrothendieckTopology C') (J : GrothendieckTopology C) (K' : GrothendieckTopology D')
(K : GrothendieckTopology D) (u' : C' ⥤ D') (u : C ⥤ D) (v' : C' ⥤ C) (v : D' ⥤ D)
[u.IsCocontinuous J K] [u'.IsCocontinuous J' K'] [v.IsContinuous K' K] [v'.IsContinuous J' J]
[∀ F : Cᵒᵖ ⥤ A, u.op.HasPointwiseRightKanExtension F]
[∀ F : C'ᵒᵖ ⥤ A, u'.op.HasPointwiseRightKanExtension F] (hsq : u' ⋙ v = v' ⋙ u)
(hfinal :
∀ V' : D',
(CostructuredArrow.map₂ (S := u') (T := V') (U := u) (V := v.obj V') (F := v') (G := v)
(eqToHom hsq.symm) (𝟙 (v.obj V'))).Final) :
Nonempty
(v'.sheafPushforwardContinuous A J' J ⋙ u'.sheafPushforwardCocontinuous A J' K' ≅
u.sheafPushforwardCocontinuous A J K ⋙ v.sheafPushforwardContinuous A K' K) ∧
∀ [(u.sheafPushforwardCocontinuous A J K).IsRightAdjoint]
[(u'.sheafPushforwardCocontinuous A J' K').IsRightAdjoint]
[(v'.sheafPushforwardContinuous A J' J).IsRightAdjoint]
[(v.sheafPushforwardContinuous A K' K).IsRightAdjoint],
Nonempty
((u'.sheafPushforwardCocontinuous A J' K').leftAdjoint ⋙ v'.sheafPullback A J' J ≅
v.sheafPullback A K' K ⋙ (u.sheafPushforwardCocontinuous A J K).leftAdjoint)
Tag 0FN2, a lemma
Tag 0FN2 in the Stacks Project.
CategoryTheory.Functor.sheafPushforwardContinuous_comp_eq_and_nonempty_sheafPullbackCompIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/AndMorphisms.lean, line 699. The attribute's comment: “Exchange for a commutative square of sites whose horizontal functors u, u' are continuous and whose vertical functors v, v' are continuous (in the source, continuous and cocontinuous): f'_* (g')⁻¹ = g⁻¹ f_* on the nose, and g'_! (f')⁻¹ ≅ f⁻¹ g_!. For coefficients in an arbitrary category; cocontinuity of v, v' is not needed once their inverse images are read as restriction (Stacks 00XR).”.
Let
(C', J'),(C, J),(D', K'),(D, K)be sites and consider a square of functorswithC' --v'--> C ↑ ↑ u' u D' --v---> Dv ⋙ u = u' ⋙ v', whereuandu'are continuous — giving rise to morphisms of sitesfandf'withf_* = u^s,f'_* = (u')^sandf⁻¹ = u_s,(f')⁻¹ = (u')_s(Stacks 00X0) — andvandv'are continuous, so thatg⁻¹ = v^pand(g')⁻¹ = (v')^pare restriction andg_!,g'_!are their left adjoints (Stacks 00XR, forv,v'also cocontinuous). Thenf'_* ∘ (g')⁻¹ = g⁻¹ ∘ f_*andg'_! ∘ (f')⁻¹ ≅ f⁻¹ ∘ g_!.
public theorem sheafPushforwardContinuous_comp_eq_and_nonempty_sheafPullbackCompIso {C' : Type u₁}
[Category.{v₁} C'] {C : Type u₂} [Category.{v₂} C] {D' : Type u₃} [Category.{v₃} D']
{D : Type u₄} [Category.{v₄} D] (A : Type u₅) [Category.{v₅} A] (J' : GrothendieckTopology C')
(J : GrothendieckTopology C) (K' : GrothendieckTopology D') (K : GrothendieckTopology D)
(u : D ⥤ C) (u' : D' ⥤ C') (v : D' ⥤ D) (v' : C' ⥤ C) [u.IsContinuous K J]
[u'.IsContinuous K' J'] [v.IsContinuous K' K] [v'.IsContinuous J' J]
[(u.sheafPushforwardContinuous A K J).IsRightAdjoint]
[(u'.sheafPushforwardContinuous A K' J').IsRightAdjoint]
[(v.sheafPushforwardContinuous A K' K).IsRightAdjoint]
[(v'.sheafPushforwardContinuous A J' J).IsRightAdjoint] (hsq : v ⋙ u = u' ⋙ v') :
v'.sheafPushforwardContinuous A J' J ⋙ u'.sheafPushforwardContinuous A K' J' =
u.sheafPushforwardContinuous A K J ⋙ v.sheafPushforwardContinuous A K' K ∧
Nonempty
(u'.sheafPullback A K' J' ⋙ v'.sheafPullback A J' J ≅
v.sheafPullback A K' K ⋙ u.sheafPullback A K J)
Sources
Section7.29 Morphisms of topoi#
Section 7.29 of the Stacks Project, Tag 039Z. 7 tags here are carried by 8 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 03A0, a lemma
Tag 03A0 in the Stacks Project.
gInv_isEquivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ToposMorphismDefs.lean, line 223.
Stacks 03A0, the pullback half. Let
C,Dbe sites andu : C ⥤ Da functor such that
uis cocontinuous;uis continuous, in the formCoverPreserving J K u;- given
a, b : U' ⟶ UinCwithu a = u b, there is a covering ofU'inCalong whichaandbagree;- given
c : u U' ⟶ u UinD, there is a covering{f i : U' i ⟶ U'}inCand morphismsc i : U' i ⟶ Uwithu (c i) = u (f i) ≫ c;- every object of
Dadmits a covering by objectsu U i.Then the morphism of topoi
g : Sh(C) ⟶ Sh(D)attached to the cocontinuous functoruby Stacks 00XO is an equivalence: its pullbackg^{-1}is an equivalence of categories. SeegStar_isEquivalencefor the direct image, andgEquivalencefor the two packaged as an equivalenceSh(D) ≌ Sh(C).
theorem gInv_isEquivalence : (gInv C D J K u).IsEquivalence
gStar_isEquivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ToposMorphismDefs.lean, line 232.
Stacks 03A0, the direct-image half. In the situation of
gInv_isEquivalence, the direct imageg_*of the morphism of topoi of Stacks 00XO is an equivalence of categories as well; together withgInv_isEquivalencethis says that the morphism of topoigis an equivalence.
theorem gStar_isEquivalence : (gStar C D J K u).IsEquivalence
Tag 03CG, a definition
Tag 03CG in the Stacks Project.
IsSpecialCocontinuous, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ToposMorphismComp.lean, line 28.
A functor
u : C ⥤ Dfrom a site(C, J)to a site(D, K)is a special cocontinuous functor if it is cocontinuous and makes(C, J)a dense subsite of(D, K).
def IsSpecialCocontinuous {C : Type*} [Category C] {D : Type*} [Category D]
(J : GrothendieckTopology C) (K : GrothendieckTopology D)
(u : C ⥤ D) : Prop
Tag 03CH, a lemma
Tag 03CH in the Stacks Project.
DenseSubsiteOverSheafEquivalence, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ToposEquivalence.lean, line 45.
Stacks 03CH.
Let
(C, J)and(D, K)be sites and letu : C ⥤ Dbe a special cocontinuous functor, formalized in Mathlib asFunctor.IsDenseSubsite J K u. Fix an objectU : C. Then:
The square of underlying site functors commutes:
Over.post u ⋙ Over.forget (u.obj U) = Over.forget U ⋙ u.The induced functor
Over.post u : Over U ⥤ Over (u.obj U)is again a special cocontinuous functor for the localized topologiesJ.over UandK.over (u.obj U).Hence, for any target category
Awith the appropriate limits, both vertical arrows in the induced commutative diagram of sheaf categories are equivalences:Sheaf J A ≌ Sheaf K A(right vertical), andSheaf (J.over U) A ≌ Sheaf (K.over (u.obj U)) A(left vertical).The Prop below packages all three conclusions.
def DenseSubsiteOverSheafEquivalence
(C : Type u) [Category.{v} C] (D : Type u') [Category.{v'} D]
(J : GrothendieckTopology C) (K : GrothendieckTopology D)
(u : C ⥤ D) (U : C)
(A : Type w) [Category.{w'} A] : Prop
Tag 03A1, a lemma
Tag 03A1 in the Stacks Project.
CategoryTheory.GrothendieckTopology.exists_isDenseSubsite_subcanonical, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/MorphismsOfTopoi.lean, line 766. The attribute's comment: “A full subcategory of Sh(C) with a set of objects which contains the sheafified representables and is closed under fibre products is a site, for the coverings whose coproduct is a surjection of sheaves; that site is subcanonical, U ↦ h_U^# is a special cocontinuous functor, and the induced equivalence of topoi matches the representables of the two sides. This is all five conclusions, with (5) stated for every object of the subcategory.”.
Let
(C, J)be a site and letι : C' ⥤ Sh(C)be a full subcategory of the category of sheaves of sets onC, with a set of objects, which is closed under fibre products and contains the sheafified representables:v : C ⥤ C'is a functor withv ⋙ ι ≅ h_{-}^#. Declare a covering ofC'to be a family{F_i ⟶ F}of morphisms with∐ F_i ⟶ Fa surjection of sheaves. Then
- these coverings are the coverings of a Grothendieck topology
KonC', i.e.C'is a site;Kis subcanonical, i.e. representable presheaves onC'are sheaves;vis a special cocontinuous functor, i.e.v.IsDenseSubsite J K, hence the induced morphism of topoig : Sh(C) ⟶ Sh(C')is an equivalence;g⁻¹ h_F = Ffor every objectFofC'; andg_* F = h_Ffor every objectFofC'; alongvthis isg_* h_U^# = h_{v U} = h_{h_U^#}.
public theorem exists_isDenseSubsite_subcanonical {C : Type u} [Category.{v} C]
(J : GrothendieckTopology C) {D : Type max u v} [SmallCategory D]
(ι : D ⥤ Sheaf J (Type max u v)) [ι.Full] [ι.Faithful] [HasPullbacks D]
[PreservesLimitsOfShape WalkingCospan ι] (v : C ⥤ D) (e : v ⋙ ι ≅ Sheaf.sheafifiedYoneda J) :
∃ K : GrothendieckTopology D,
(∀ {X : D} {α : Type max u v} (Y : α → D) (p : ∀ a, Y a ⟶ X) {c : Cofan fun a ↦ ι.obj (Y a)}
(hc : IsColimit c),
Sieve.ofArrows Y p ∈ K X ↔ Epi (Cofan.IsColimit.desc hc fun a ↦ ι.map (p a))) ∧
∃ (_ : K.Subcanonical) (_ : v.IsDenseSubsite J K),
Nonempty (K.yoneda ⋙ v.sheafPushforwardContinuous (Type max u v) J K ≅ ι) ∧
Nonempty (ι ⋙ v.sheafPushforwardCocontinuous (Type max u v) J K ≅ K.yoneda)
Tag 03CI, a lemma
Tag 03CI in the Stacks Project.
CategoryTheory.GrothendieckTopology.exists_isDenseSubsite_subcanonical_hasFiniteLimits_representable, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/MorphismsOfTopoi.lean, line 1432. The attribute's comment: “Any topos is equivalent, by a special cocontinuous functor, to the topos of sheaves on a site which is subcanonical, has all finite limits, has all subsheaves of representables representable, and on which a prescribed set of sheaves becomes representable. This is conclusions (1), (3), (4) and (5); conclusion (2) holds for every topology and is ofArrows_mem_iff_isLocallySurjective_sigmaDesc_uliftYoneda_map. The functor is also recorded to preserve all finite limits that exist in the given site.”. References: SGA 4 IV (1.2), “i) => i')”.
Let
(C, J)be a site and letF : ι → Sheaf J (Type max u v)be a set of sheaves of sets onC. Then there is a site(D, K)and a special cocontinuous functorG : C ⥤ D(Stacks 03CG: a functor exhibiting(C, J)as a dense subsite of(D, K)), so that the induced morphism of topoig : Sh(C) → Sh(D)is an equivalence, such that
Kis subcanonical;Dhas all finite limits, i.e. fibre products and a final object;- every subsheaf of a representable sheaf on
Dis representable; and- each
g_* (F i) = (G.sheafPushforwardCocontinuous _ J K).obj (F i)is representable;moreover
Gpreserves all finite limits that exist inC.
public theorem exists_isDenseSubsite_subcanonical_hasFiniteLimits_representable {C : Type u}
[Category.{v} C] (J : GrothendieckTopology C) {ι : Type max u v}
(F : ι → Sheaf J (Type max u v)) :
∃ (D : Type max u v) (_ : SmallCategory D) (K : GrothendieckTopology D) (G : C ⥤ D) (_ :
G.IsDenseSubsite J K) (_ : K.Subcanonical) (_ : HasFiniteLimits D)
(_ : PreservesFiniteLimits G),
(∀ (V : D) (ℱ : Sheaf K (Type max u v)) (i : ℱ ⟶ K.yoneda.obj V),
Mono i → ℱ.obj.IsRepresentable) ∧
(∀ i,
((G.sheafPushforwardCocontinuous (Type max u v) J K).obj
(F i)).obj.IsRepresentable)
Tag 03A2, a lemma
Tag 03A2 in the Stacks Project.
MorphismOfTopoi.exists_isDenseSubsite_isMorphismOfSites_pushforward_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/MorphismsOfTopoi.lean, line 1081. The attribute's comment: “Every morphism of topoi is the composition of the equivalence induced by a special cocontinuous functor with the morphism of topoi induced by a morphism of sites. The conclusion also records, from Stacks 03CJ, that u preserves the final object.”.
Let
(C, J)and(D, K)be sites and letf : Sh(C) → Sh(D)be a morphism of topoi. Then there are a site(C', J')and functorsv : C ⥤ C'andu : D ⥤ C'such that
vis a special cocontinuous functor, i.e. exhibits(C, J)as a dense subsite of(C', J'), so that the morphism of topoig : Sh(C) → Sh(C')it induces is an equivalence;ucommutes with fibre products and with the final object, is continuous, and defines a morphism of sitesC' → D, hence a morphism of topoih : Sh(C') → Sh(D); andfagrees withh ∘ g, in the sense thatf_*is isomorphic to the composition of the pushforwardsg_* = v.sheafPushforwardCocontinuousandh_* = u.sheafPushforwardContinuous.
public theorem exists_isDenseSubsite_isMorphismOfSites_pushforward_iso {C : Type u₁}
[Category.{v₁} C] {D : Type u₁} [Category.{v₁} D] {J : GrothendieckTopology C}
{K : GrothendieckTopology D}
(f : MorphismOfTopoi (Sheaf J (Type max u₁ v₁)) (Sheaf K (Type max u₁ v₁))) :
∃ (C' : Type max u₁ v₁) (_ : SmallCategory C') (J' : GrothendieckTopology C') (v : C ⥤ C') (u :
D ⥤ C') (_ : v.IsDenseSubsite J J') (_ : _root_.IsMorphismOfSites.{max u₁ v₁} u K J'),
PreservesLimitsOfShape WalkingCospan u ∧
PreservesLimitsOfShape (Discrete PEmpty.{1}) u ∧
Nonempty
(f.pushforward ≅
v.sheafPushforwardCocontinuous (Type max u₁ v₁) J J' ⋙
u.sheafPushforwardContinuous (Type max u₁ v₁) K J')
Tag 03CJ, a remark
Tag 03CJ in the Stacks Project.
MorphismOfTopoi.exists_twoSided_isDenseSubsite_representablyFlat, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ToposReplacement.lean, line 251. The attribute's comment: “Any morphism of topoi fits into a commutative square with two equivalences given by special cocontinuous functors and a morphism of topoi coming from a functor u : D' ⥤ C' to which Stacks 00X6 applies, with both C' and D' having all finite limits and subcanonical topologies, and with prescribed families of sheaves on C and on D becoming representable on C' and on D'.”.
Let
(C, J)and(D, K)be sites and letf : Sh(C) → Sh(D)be a morphism of topoi. Then there are sites(C', J')and(D', K'), special cocontinuous functorsv : C ⥤ C'andw : D ⥤ D', and a functoru : D' ⥤ C'such that
vandwexhibit(C, J)and(D, K)as dense subsites, so the morphisms of topoig : Sh(C) → Sh(C')ande : Sh(D) → Sh(D')they induce are equivalences (Stacks 03A0);J'andK'are subcanonical andC'andD'have all finite limits;uis continuous, preserves all finite limits, is representably flat and defines a morphism of sitesC' → D'— in other words Stacks 00X6 applies tou;- each
g_*(F i)is a representable sheaf onC'and eache_*(G j)is a representable sheaf onD', for prescribed families of sheavesFonCandGonD; and- the square commutes:
f_* ⋙ e_*is isomorphic tog_* ⋙ h_*, whereh : Sh(C') → Sh(D')is the morphism of topoi attached to the morphism of sitesu.Conclusions (1)-(4) are the source's conclusions (1)-(4) and (5) is the commutativity of the square the source's remark is about.
theorem exists_twoSided_isDenseSubsite_representablyFlat {C : Type u} [SmallCategory C]
{D : Type u} [SmallCategory D] {J : GrothendieckTopology C} {K : GrothendieckTopology D}
(f : MorphismOfTopoi (Sheaf J (Type u)) (Sheaf K (Type u))) {ι : Type u}
(F : ι → Sheaf J (Type u)) {κ : Type u} (G : κ → Sheaf K (Type u)) :
∃ (C' : Type u) (_ : SmallCategory C') (J' : GrothendieckTopology C') (D' : Type u)
(_ : SmallCategory D') (K' : GrothendieckTopology D') (v : C ⥤ C') (w : D ⥤ D')
(u : D' ⥤ C') (_ : v.IsDenseSubsite J J') (_ : w.IsDenseSubsite K K')
(_ : HasFiniteLimits C') (_ : HasFiniteLimits D') (_ : J'.Subcanonical)
(_ : K'.Subcanonical) (_ : u.IsContinuous K' J') (_ : PreservesFiniteLimits u)
(_ : RepresentablyFlat u) (_ : u.IsMorphismOfSites K' J'),
(∀ i, ((v.sheafPushforwardCocontinuous (Type u) J J').obj (F i)).obj.IsRepresentable) ∧
(∀ j, ((w.sheafPushforwardCocontinuous (Type u) K K').obj (G j)).obj.IsRepresentable) ∧
Nonempty
(f.pushforward ⋙ w.sheafPushforwardCocontinuous (Type u) K K' ≅
v.sheafPushforwardCocontinuous (Type u) J J' ⋙
u.sheafPushforwardContinuous (Type u) K' J')
Sources
Section7.30 Localization of topoi#
Section 7.30 of the Stacks Project, Tag 04GY. 7 tags here are carried by 16 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04GZ, a lemma
Tag 04GZ in the Stacks Project.
MorphismOfTopoi.overLocalization, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/ToposLocalization.lean, line 76. The attribute's comment: “the morphism of topoi j_F, and its inverse image”. References: SGA 4 IV (5.5), “Y = terminal object”; SGA 4 IV (5.2), “(5.2.1)”; SGA 4 IV (3.1.3), “special case”.
Stacks 04GZ. Let
Ebe a topos andFan object ofE. The localization morphismj_F : E/F ⟶ Eis the morphism of topoi whose inverse image isj_F⁻¹ = toOver F, i.e.H ↦ (H × F ⟶ F), and whose pushforwardj_{F,*}is a right adjoint of it.
def overLocalization (F : E) {p : Over F ⥤ E} (adj : toOver F ⊣ p) : MorphismOfTopoi (Over F) E
MorphismOfTopoi.overLocalization_inverseImage_obj, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/ToposLocalization.lean, line 89. The attribute's comment: “(1): the functor j_F^{-1} is H ↦ H × F / F”. References: SGA 4 IV (5.5), “Y terminal (f^* formula)”; SGA 4 IV (5.2), “b)”.
Stacks 04GZ (1). The inverse image of the localization morphism
j_Fis the functorH ↦ (H × F / F), the object ofE/Fgiven by the projectionH × F ⟶ F.
lemma overLocalization_inverseImage_obj (F : E) {p : Over F ⥤ E} (adj : toOver F ⊣ p) (H : E) :
(overLocalization F adj).inverseImage.obj H = Over.mk (snd H F)
MorphismOfTopoi.overLocalizationShriek, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/ToposLocalization.lean, line 98. The attribute's comment: “(2): the functor j_{F!} is the forgetful functor G/F ↦ G”. References: SGA 4 IV (5.5), “Y terminal (f_! ⊣ f^*)”; SGA 4 IV (5.2), “a)”.
Stacks 04GZ (2). The functor
j_{F!}is the forgetful functor(G ⟶ F) ↦ G: it is left adjoint toj_F⁻¹, so thatj_{F!} ⊣ j_F⁻¹ ⊣ j_{F,*}andj_Fis a localization in the sense of Section 7.25 (tag 00XZ).
def overLocalizationShriek (F : E) {p : Over F ⥤ E} (adj : toOver F ⊣ p) :
Over.forget F ⊣ (overLocalization F adj).inverseImage
Tag 04H0, a lemma
Tag 04H0 in the Stacks Project.
CategoryTheory.homPushforwardEquivRightInverse, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/OverHomEquiv.lean, line 93.
Stacks 04H0. Let
Ebe a topos,Fan object ofEandj_{F,*} = pa pushforward for the localizationj_F : E/F ⟶ E, i.e. a right adjoint ofj_F⁻¹ = toOver F. For an objectφ : G ⟶ FofE/Fand any objectAofE, the mapsA ⟶ j_{F,*}(G/F)are in bijection with the morphismsα : F|_A ⟶ G|_AofE/Athat are right inverse toφ|_A, restriction toAbeing(-)|_A = j_A⁻¹ = toOver A.Taking
A = h_U^#and usingΓ(U, -) = Hom(h_U^#, -)this is Stacks 04H0: the sections ofj_{F,*}(G/F)overUare the right inverses ofφ|_U. The proof follows the Stacks one: the adjunction definingpidentifiesHom(A, j_{F,*}(G/F))with the fibre ofφ ∘ (-)over the projectionA ⊗ F ⟶ F, and interchanging the two factors turns that fibre into the set of right inverses ofφ|_A.Two things are not covered: the bijection is stated pointwise in
A, its naturality inA(which is what makes the right-inverse description a description of the sheaf rather than of its individual section sets) being left implicit; andF|_Ais read in the sliceE/A, whereas Stacks reads it inSh(C/U)via the equivalenceSh(C/U) ≃ Sh(C)/h_U^#of Stacks 00Y1, which is not yet available.
def homPushforwardEquivRightInverse [BraidedCategory E] {p : Over F ⥤ E} (adj : toOver F ⊣ p)
(φ : G ⟶ F) (A : E) :
(A ⟶ p.obj (Over.mk φ)) ≃
{ α : (toOver A).obj F ⟶ (toOver A).obj G // α ≫ (toOver A).map φ = 𝟙 _ }
Tag 0791, a lemma
Tag 0791 in the Stacks Project.
CategoryTheory.Presheaf.IsSheaf.app_fibers_inv_comp_unitInv, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/LocalizationOfTopoi.lean, line 881. The attribute's comment: “the fibre identification of j_!j^{-1}G is evaluation of the counit of j_!”.
Stacks 0791: the fibre identification of
j_!j^{-1}Gis evaluation of the shriek counit. WriteEfor the equivalence ofsheafEquivalenceCostructuredArrowYonedaandT = E(j^{-1}G)for the object ofSh(C)/Fwhose source isj_!j^{-1}G. The equivalence identifies the fibre sheaf ofTwithj^{-1}G: on underlying presheaves the fibre sheaf ofTis(U, s) ↦ {t ∈ T.left(U) | T.hom(t) = s}by thefibersfield, andE.inverse (E T) ≅ Tby the unit. This says that the identification sends a sectiontofj_!j^{-1}GoverUlying in the fibre overs ∈ F(U)to its image under the counit ofj_! ⊣ j^{-1}, a section ofGoverU.This is the statement connecting the package's two descriptions of
E. A comparison built from the fibre field — such as Stacks 04J4's identification of the inverse image of a relocalization with a base change — and one built from the counit ofj_!— such as Stacks 04IE's identification of the inverse image of a localization with a product — are otherwise assertions about data that nothing relates, even though both come from the sameE. Both sides here are morphisms out of the fibre presheaf ofT, so comparing them needs no further transport.
theorem Presheaf.IsSheaf.app_fibers_inv_comp_unitInv {C : Type u} [Category.{v} C]
{J : GrothendieckTopology C} {F : Cᵒᵖ ⥤ Type v} (hF : Presheaf.IsSheaf J F)
[(CostructuredArrow.proj yoneda F).IsContinuous
((CostructuredArrow.proj yoneda F).restrictedTopology J) J]
(G : Sheaf J (Type v)) (X : CostructuredArrow yoneda F)
(p : OverArrows (hF.sheafEquivalenceCostructuredArrowYoneda.equivalence.functor.obj
(((CostructuredArrow.proj yoneda F).sheafPushforwardContinuous (Type v)
((CostructuredArrow.proj yoneda F).restrictedTopology J) J).obj G)).hom.hom X.hom) :
(hF.sheafEquivalenceCostructuredArrowYoneda.fibers.inv.app
(hF.sheafEquivalenceCostructuredArrowYoneda.equivalence.functor.obj
(((CostructuredArrow.proj yoneda F).sheafPushforwardContinuous (Type v)
((CostructuredArrow.proj yoneda F).restrictedTopology J) J).obj G)) ≫
(hF.sheafEquivalenceCostructuredArrowYoneda.equivalence.unitInv.app
(((CostructuredArrow.proj yoneda F).sheafPushforwardContinuous (Type v)
((CostructuredArrow.proj yoneda F).restrictedTopology J) J).obj G)).hom).app
(op X) p =
(hF.sheafEquivalenceCostructuredArrowYoneda.shriek.counit.app G).hom.app (op X.left)
p.val
CategoryTheory.Presheaf.IsSheaf.app_fibers_inv_comp_homEquiv_shriek, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/LocalizationOfTopoi.lean, line 916. The attribute's comment: “transposing across j_! ⊣ j^{-1} is evaluation on fibres”.
Stacks 0791: transposing across
j_! ⊣ j^{-1}is evaluation on fibres. LetTbe an object ofSh(C)/Fandβ : T.left ⟶ Ga morphism of sheaves onC. Readingβas a morphism out ofj_!of the fibre sheaf ofT— which is what precomposing with the counit of the equivalence does — and transposing it acrossj_! ⊣ j^{-1}gives a morphism from the fibre sheaf ofTtoj^{-1}G. This says that that morphism sends a sectiontofT.leftoverUlying in the fibre overs ∈ F(U)toβ(t).This is the general form of
app_fibers_inv_comp_unitInv, which is the caseT = E(j^{-1}G),βthe counit; it is what a comparison built from thefibersfield has to be fed through in order to be compared with one built from the counit ofj_!, since the underlying sheafT.leftof an object in the image ofEhas no description other than by its fibres. Everything inj_!'s adjunction cancels against the equivalence, so the content is exactly the fibre hom bijection of the source's proof.
theorem Presheaf.IsSheaf.app_fibers_inv_comp_homEquiv_shriek {C : Type u} [Category.{v} C]
{J : GrothendieckTopology C} {F : Cᵒᵖ ⥤ Type v} (hF : Presheaf.IsSheaf J F)
[(CostructuredArrow.proj yoneda F).IsContinuous
((CostructuredArrow.proj yoneda F).restrictedTopology J) J]
(T : Over (⟨F, hF⟩ : Sheaf J (Type v))) (G : Sheaf J (Type v)) (β : T.left ⟶ G)
(X : CostructuredArrow yoneda F) (p : OverArrows T.hom.hom X.hom) :
(hF.sheafEquivalenceCostructuredArrowYoneda.fibers.inv.app T ≫
(hF.sheafEquivalenceCostructuredArrowYoneda.shriek.homEquiv
(hF.sheafEquivalenceCostructuredArrowYoneda.equivalence.inverse.obj T) G
((Over.forget (⟨F, hF⟩ : Sheaf J (Type v))).map
(hF.sheafEquivalenceCostructuredArrowYoneda.equivalence.counit.app T) ≫
β)).hom).app
(op X) p =
β.hom.app (op X.left) p.val
CategoryTheory.Presheaf.IsSheaf.exists_sheafEquivalence_costructuredArrow_yoneda, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/LocalizationOfTopoi.lean, line 956. The attribute's comment: “Sheaves on the site C/F of pairs (U, s) with s ∈ F(U), whose coverings are those of C: C/F is a site, j is continuous and cocontinuous, the canonical equivalence PSh(C)/F ≌ PSh(C/F) matches sheaves with sheaves, and it restricts to an equivalence Sh(C/F) ≌ Sh(C)/F carrying j_! to Over.forget, i.e. turning j into j_F.”. References: SGA 4 III (5.2), “special case”.
Stacks 0791. Let
(C, J)be a site and letFbe a sheaf of sets onC. LetC/F = CostructuredArrow yoneda Fbe the category of pairs(U, s)withs ∈ F(U), with its projectionj = CostructuredArrow.proj yoneda FtoC, and declare a family{(U_i, s_i) ⟶ (U, s)}to be a covering when{U_i ⟶ U}is a covering ofC, i.e. giveC/Fthe topologyj.restrictedTopology Jgenerated by those families. Then:
C/Fis a site with exactly those coverings: a sieve of(U, s)is covering forj.restrictedTopology Jif and only if its image underjis a covering sieve ofU;- the canonical equivalence
Over F ≌ PSh(C/F)ofoverEquivPresheafCostructuredArrowmatches sheaves with sheaves: for an objectφ : G ⟶ FofPSh(C)/F, the presheaf(U, s) ↦ {t ∈ G(U) | φ(t) = s}onC/Fis a sheaf if and only ifGis a sheaf onC;jis continuous and cocontinuous, so that it induces a morphism of topoij : Sh(C/F) ⟶ Sh(C)withj^{-1}restriction (Stacks 00XR); and- there is an equivalence
E : Sh(C/F) ≌ Sh(C)/F, namely the restriction of that canonical equivalence —E.inverseis(G, φ) ↦ ((U, s) ↦ {t ∈ G(U) | φ(t) = s})on underlying presheaves — for whichE.functorfollowed byOver.forgetis left adjoint toj^{-1}, that is, isj_!. SinceOver.forgetis thej_{F!}of Stacks 04GZ, this is the assertion thatEturnsjinto the localization morphismj_F.
public theorem Presheaf.IsSheaf.exists_sheafEquivalence_costructuredArrow_yoneda {C : Type u}
[Category.{v} C] {J : GrothendieckTopology C} {F : Cᵒᵖ ⥤ Type v} (hF : Presheaf.IsSheaf J F) :
(∀ (X : CostructuredArrow yoneda F) (S : Sieve X),
S ∈ (CostructuredArrow.proj yoneda F).restrictedTopology J X ↔
Sieve.functorPushforward (CostructuredArrow.proj yoneda F) S ∈ J X.left) ∧
(∀ T : Over F,
Presheaf.IsSheaf ((CostructuredArrow.proj yoneda F).restrictedTopology J)
((overEquivPresheafCostructuredArrow F).functor.obj T) ↔
Presheaf.IsSheaf J T.left) ∧
∃ (_ :
(CostructuredArrow.proj yoneda F).IsContinuous
((CostructuredArrow.proj yoneda F).restrictedTopology J) J)
(_ :
(CostructuredArrow.proj yoneda F).IsCocontinuous
((CostructuredArrow.proj yoneda F).restrictedTopology J) J)
(E :
Sheaf ((CostructuredArrow.proj yoneda F).restrictedTopology J) (Type v) ≌
Over (⟨F, hF⟩ : Sheaf J (Type v))),
Nonempty
(E.inverse ⋙
sheafToPresheaf ((CostructuredArrow.proj yoneda F).restrictedTopology J) (Type v) ≅
Over.post (X := (⟨F, hF⟩ : Sheaf J (Type v))) (sheafToPresheaf J (Type v)) ⋙
(overEquivPresheafCostructuredArrow F).functor) ∧
Nonempty
(E.functor ⋙ Over.forget (⟨F, hF⟩ : Sheaf J (Type v)) ⊣
(CostructuredArrow.proj yoneda F).sheafPushforwardContinuous (Type v)
((CostructuredArrow.proj yoneda F).restrictedTopology J) J)
Tag 04IP, a definition
Tag 04IP in the Stacks Project.
toposLocalization, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/ToposLocalizationMorphism.lean, line 37. References: SGA 4 IV (5.1).
The localization of the topos of sheaves
Sh(C, J)at a sheafFis the slice (over) categorySh(C, J) / F. Objects are pairs(G, φ)whereGis a sheaf onCandφ : G ⟶ Fis a morphism of sheaves, and morphisms are commuting triangles overF.
abbrev toposLocalization (F : Sheaf J (Type (max u v)))
toposLocalizationMorphism, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/ToposLocalizationMorphism.lean, line 73. References: SGA 4 IV (5.2), “(5.2.1)”; SGA 3 I (1.6), “p_S clause: i_S ⊣ p_S”; SGA 4 IV (8.5).
The localization morphism
j_Fassociated to the localization of the toposSh(C, J)at the sheafF(Stacks Project Tag 04IN).We package the canonical Mathlib adjunction
Over.forget F ⊣ Over.star F, which is the structural content of the morphism: -Over.forget F : Sh(C)/F ⥤ Sh(C)sends(G, φ : G ⟶ F)toG. This is the left adjoint (the "shriek" / étale-extension functor in the slice topos picture). -Over.star F : Sh(C) ⥤ Sh(C)/FsendsGto the second projection(G × F, pr_F) : G × F ⟶ F. This is the right adjoint (the base-change / star functor).The adjunction
Over.forget F ⊣ Over.star Fis exactlyOver.forgetAdjStarin Mathlib, and it requiresSh(C, J)to have binary products.
noncomputable def toposLocalizationMorphism (F : Sheaf J (Type (max u v)))
[Limits.HasBinaryProducts (Sheaf J (Type (max u v)))] :
ToposAdjointPair (toposLocalization J F) (Sheaf J (Type (max u v)))
Tag 04IQ, a lemma
Tag 04IQ in the Stacks Project.
CategoryTheory.OverShriek.sheafFunctorToOverCompForgetIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/ToposComparison.lean, line 89. The attribute's comment: “j_{F!} = j_{U!} for F = h_U^#: the lower shrieks agree”.
Stacks 04IQ, on lower shrieks:
j_{F!} ∘ Φ_U = j_{U!}forF = h_U^#.The lower shriek of the localization morphism
j_Fof Stacks 04GZ is the forgetful functorOver.forget F(MorphismOfTopoi.overLocalizationShriek), so this says that the sheaf underlyingΦ_U Gisj_{U!}G.
def sheafFunctorToOverCompForgetIso :
sheafFunctorToOver (U := U) J ⋙
Over.forget ((presheafToSheaf J (Type v)).obj (yoneda.obj U)) ≅
(Over.forget U).sheafPullback (Type v) (J.over U) J
CategoryTheory.OverShriek.overPullbackCompSheafFunctorToOverIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/ToposComparison.lean, line 109. The attribute's comment: “j_F^{-1} = j_U^{-1} for F = h_U^#: the inverse images agree”.
Stacks 04IQ, on inverse images:
j_F^{-1} = j_U^{-1}forF = h_U^#, i.e.j_U^{-1} ⋙ Φ_U ≅ toOver F.
def overPullbackCompSheafFunctorToOverIso :
J.overPullback (Type v) U ⋙ sheafFunctorToOver (U := U) J ≅
toOver ((presheafToSheaf J (Type v)).obj (yoneda.obj U))
CategoryTheory.OverShriek.sheafFunctorToOverCompPushforwardIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/ToposComparison.lean, line 205. The attribute's comment: “j_{F,} = j_{U,} for F = h_U^#: the pushforwards agree”.
Stacks 04IQ, on pushforwards:
j_{F,*} = j_{U,*}forF = h_U^#, i.e.Φ_U ⋙ j_{F,*} ≅ j_{U,*}.Both pushforwards are taken as data, as in Stacks 04GZ, 04H0 and 04IR:
pis a right adjoint ofj_F^{-1} = toOver Fandqa right adjoint ofj_U^{-1}.
def sheafFunctorToOverCompPushforwardIso
{p : Over ((presheafToSheaf J (Type v)).obj (yoneda.obj U)) ⥤ Sheaf J (Type v)}
(adjp : toOver ((presheafToSheaf J (Type v)).obj (yoneda.obj U)) ⊣ p)
{q : Sheaf (J.over U) (Type v) ⥤ Sheaf J (Type v)}
(adjq : J.overPullback (Type v) U ⊣ q) :
sheafFunctorToOver (U := U) J ⋙ p ≅ q
Tag 04IR, a lemma
Tag 04IR in the Stacks Project.
CategoryTheory.starIteratedSliceForwardIsoPullback, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/IteratedSlice.lean, line 58. The attribute's comment: “j = j_{G/F} and j^{-1}(H → F) = (H ×_F G → G)”. References: SGA 7 VII (2.0), “partial”.
Let
s : G ⟶ Fbe a morphism of a toposEand writeG/Ffor the corresponding object of the slice toposE/F. LocalizingE/FatG/Fproduces the morphism of topoi whose inverse image isOver.star (Over.mk s); transporting it along the iterated slice equivalence(E/F)/(G/F) ≌ E/Gidentifies it with base change alongs:Together withj⁻¹(H ⟶ F) = (H ×_F G ⟶ G).map_eq_forget_iteratedSlice(Stacks 03EH), which identifies the corresponding lower shriek withOver.map s, this is the assertion thatjis the localization ofE/FatG/F.
noncomputable def starIteratedSliceForwardIsoPullback [HasPullbacks E] :
Over.star (Over.mk s) ⋙ (Over.mk s).iteratedSliceForward ≅ Over.pullback s
CategoryTheory.pushforwardIsoCompPushforward, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/IteratedSlice.lean, line 72. The attribute's comment: “j_{G,} = j_{F,} ∘ j_*”.
The pushforwards of the localizations satisfy
j_{G,*} = j_{F,*} ∘ j_*.The inverse images satisfy
j_G⁻¹ = j⁻¹ ∘ j_F⁻¹, which isOver.starPullbackIsoStar; passing to right adjoints turns this into the stated identity between the pushforwards. The three pushforwards are given as data, since a general category with pullbacks and binary products need not have them (in a topos they exist, by Stacks 04GZ).
noncomputable def pushforwardIsoCompPushforward [HasPullbacks E] [HasBinaryProducts E]
{pF : Over F ⥤ E} {pG : Over G ⥤ E} {p : Over G ⥤ Over F}
(adjF : Over.star F ⊣ pF) (adjG : Over.star G ⊣ pG) (adj : Over.pullback s ⊣ p) :
pG ≅ p ⋙ pF
Tag 04IS, a lemma
Tag 04IS in the Stacks Project.
CategoryTheory.OverShriek.relocalizeToposInverseImageIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizeTopos.lean, line 80. The attribute's comment: “the inverse images of the two relocalizations agree, via 00Y1”.
Stacks 04IS, on inverse images. Under the identification of Stacks 00Y1, used in the forward direction
Φ_U = sheafFunctorToOver J, the inverse imagej^{-1}of the relocalization functorj = Over.map fof diagram (04IK) is the inverse imageOver.star (h_V^#/h_U^#) ⋙ iteratedSliceForwardof the localization of the toposSh(C)/h_U^#at the objecth_V^#/h_U^#of Stacks 04IR.This is Stacks' proof: by Stacks 04IL the left-hand side is base change along
h_f^#, and by Stacks 04IR so is the right-hand side.
def relocalizeToposInverseImageIso :
(Over.map f).sheafPushforwardContinuous (Type v) (J.over V) (J.over U) ⋙
sheafFunctorToOver (U := V) J ≅
sheafFunctorToOver (U := U) J ⋙
Over.star (Over.mk ((presheafToSheaf J (Type v)).map (yoneda.map f))) ⋙
(Over.mk ((presheafToSheaf J (Type v)).map (yoneda.map f))).iteratedSliceForward
CategoryTheory.OverShriek.relocalizeToposShriekIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/RelocalizeTopos.lean, line 101. The attribute's comment: “the lower shrieks of the two relocalizations agree, via 00Y1”.
Stacks 04IS, on lower shrieks. Under the identification of Stacks 00Y1, used in the forward direction
Φ_U = sheafFunctorToOver J, the lower shriekj_!of the relocalization functorj = Over.map fof diagram (04IK) is the lower shriekiteratedSliceBackward ⋙ Over.forget (h_V^#/h_U^#)of the localization of the toposSh(C)/h_U^#at the objecth_V^#/h_U^#of Stacks 04IR.By Stacks 04IL the left-hand side is postcomposition with
h_f^#, and byOver.iteratedSliceBackward_forget— the identity underlying Stacks 04IR's description ofj_!— so is the right-hand side.
def relocalizeToposShriekIso :
(Over.map f).sheafPullback (Type v) (J.over V) (J.over U) ⋙ sheafFunctorToOver (U := U) J ≅
sheafFunctorToOver (U := V) J ⋙
(Over.mk ((presheafToSheaf J (Type v)).map (yoneda.map f))).iteratedSliceBackward ⋙
Over.forget (Over.mk ((presheafToSheaf J (Type v)).map (yoneda.map f)))
Sources
Section7.31 Localization and morphisms of topoi#
Section 7.31 of the Stacks Project, Tag 04IT. 4 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04H1, a lemma
Tag 04H1 in the Stacks Project.
MorphismOfTopoi.over, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/OverPushforward.lean, line 61. The attribute's comment: “the morphism f' and the description of (f')⁻¹”. References: SGA 4 V (5.1).
Stacks 04H1. Let
f : E ⟶ Dbe a morphism of topoi andGan object ofD. LocalizingEatF = f⁻¹GandDatGgives a morphism of topoif' : E/F ⟶ D/Gwhose inverse image isOver.post f⁻¹, i.e.which is the property characterizing(f')⁻¹(H ⟶ G) = (f⁻¹H ⟶ f⁻¹G) ,f'. Its pushforward is(K ⟶ F) ↦ (f_*K ×_{f_*f⁻¹G} G ⟶ G), the right adjoint supplied byCategoryTheory.Over.postAdjunctionLeft, and its inverse image is left exact becausef⁻¹is.
noncomputable def over : MorphismOfTopoi (Over (f.inverseImage.obj G)) (Over G)
MorphismOfTopoi.inverseImageCompToOverIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/OverPushforward.lean, line 75. The attribute's comment: “commutativity of the square, on inverse images”.
Stacks 04H1, commutativity of the square on inverse images:
j_F⁻¹ ∘ f⁻¹ = (f')⁻¹ ∘ j_G⁻¹, wherej_G⁻¹ = toOver Gandj_F⁻¹ = toOver (f⁻¹G). Concretely,f⁻¹carries the productH ⊗ GoverGto the productf⁻¹H ⊗ f⁻¹Goverf⁻¹G; this is where the left exactness off⁻¹enters.
noncomputable def inverseImageCompToOverIso :
f.inverseImage ⋙ toOver (f.inverseImage.obj G) ≅ toOver G ⋙ (f.over G).inverseImage
MorphismOfTopoi.toOverCompPushforwardIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/OverPushforward.lean, line 91. The attribute's comment: “f'_ j_F^{-1} = j_G^{-1} f_”.
Stacks 04H1:
f'_* ∘ j_F⁻¹ = j_G⁻¹ ∘ f_*.Both sides are right adjoints — of
(f')⁻¹ ⋙ j_{F!}and ofj_{G!} ⋙ f⁻¹respectively — and those two left adjoints are equal on the nose byOver.post_forget_eq_forget_comp, so the identity follows from uniqueness of right adjoints.
noncomputable def toOverCompPushforwardIso :
toOver (f.inverseImage.obj G) ⋙ (f.over G).pushforward ≅ f.pushforward ⋙ toOver G
Tag 04IU, a lemma
Tag 04IU in the Stacks Project.
CategoryTheory.SliceTopos.underlyingIso_hom_app_comp_hom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/LocalizationAndMorphismsOfTopoi.lean, line 435.
Stacks 04IU. Let
u : C ⥤ Dbe a continuous functor between sites defining a morphism of sites, with induced morphism of topoif : Sh(D) ⟶ Sh(C), letVbe an object ofCand putU = u V. Localizing the morphism of sites atV(Stacks 03CF) givesf' : Sh(D/U) ⟶ Sh(C/V)with(f')⁻¹ = u'_sforu' = Over.post u; localizing the morphism of topoi at the sheafh_V^#(Stacks 04H1) givesf'' : Sh(D)/f⁻¹h_V^# ⟶ Sh(C)/h_V^#with(f'')⁻¹ = Over.post f⁻¹. Through the equivalencesΦ_V, Φ_Uof Stacks 00Y1 and the identificationf⁻¹h_V^# ≅ h_U^#of Stacks 04D3 the two agree:Both sides become(f')⁻¹ ⋙ Φ_U ≅ Φ_V ⋙ (f'')⁻¹ ⋙ Over.map (04D3) .j_{U!}(f')⁻¹ ≅ f⁻¹j_{V!}afterOver.forget h_U^#, canonically and for free, byunderlyingIso; the content of the lemma, stated here, is that that canonical isomorphism respects the structure maps toh_U^#, the one on the right being computed with Stacks 04D3's identification. Feeding this equation toOver.natIsoOfForgetIsoproduces the displayed isomorphism of functors, hence the agreement of the diagram of Stacks 04H1 with the diagram of Stacks 03CF via the identificationsj_F = j_U,j_G = j_Vof Stacks 04IQ.
public theorem underlyingIso_hom_app_comp_hom {C : Type u} [SmallCategory C] {D : Type u}
[SmallCategory D] {J : GrothendieckTopology C} {K : GrothendieckTopology D} {u : C ⥤ D}
[u.IsContinuous J K]
(hu : u.IsMorphismOfSites J K) (V : C) (H : Sheaf (J.over V) (Type u)) :
(underlyingIso J K u V).hom.app H ≫
((sheafFunctorToOver (U := V) J ⋙
(hu.morphismOfTopoi.over
((presheafToSheaf J (Type u)).obj (yoneda.obj V))).inverseImage ⋙
Over.map (sheafPullbackSheafifyYonedaIso u J K V).hom).obj H).hom =
(((Over.post (X := V) u).sheafPullback (Type u) (J.over V) (K.over (u.obj V)) ⋙
sheafFunctorToOver (U := u.obj V) K).obj H).hom
Tag 04IV, a lemma
Tag 04IV in the Stacks Project.
relocalizeMorphismTopoiPullbackIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/RelocalizationPullback.lean, line 123.
Let
F : D ⥤ Cbe a functor preserving the pullback ofφandb. Givenφ : H ⟶ G,b : G' ⟶ GinDanda : Fbar' ⟶ Fbar,s : Fbar ⟶ F.obj G,s' : Fbar' ⟶ F.obj G'inCsatisfyinga ≫ s = s' ≫ F.map b, there is a canonical isomorphism(F.obj H ×_{F.obj G} Fbar) ×_{Fbar} Fbar' ≅ F.obj (H ×_G G') ×_{F.obj G'} Fbar'.This is the formal pullback identity at the end of the proof, with the topos-theoretic inverse image
f⁻¹replaced by the generic pullback-preserving functorF.
noncomputable def relocalizeMorphismTopoiPullbackIso :
pullback (pullback.snd (F.map φ) s) a ≅
pullback (F.map (pullback.snd φ b)) s'
Tag 04IW, a lemma
Tag 04IW in the Stacks Project.
CategoryTheory.SliceTopos.isPullback_sheafFunctorToOver_overMap_overPost, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/SliceTopos/LocalizationAndMorphismsOfTopoi.lean, line 698.
Stacks 04IW. Let
u : C ⥤ Dbe a continuous functor between sites defining a morphism of sites, with induced morphism of topoif : Sh(D) ⟶ Sh(C), letVbe an object ofC,Uan object ofDandc : U ⟶ u V. Localizing the morphism of sites atc(Stacks 04IN) givesf_c : Sh(D/U) ⟶ Sh(C/V)with(f_c)⁻¹ = (Over.post u)_s ⋙ (Over.map c)^s; localizing the morphism of topoi ats : h_U^# ⟶ f⁻¹h_V^#, the morphism induced byc(Stacks 04IV), givesf_s : Sh(D)/h_U^# ⟶ Sh(C)/h_V^#, characterised by(f_s)⁻¹(H ⟶ h_V^#) = (f⁻¹H ×_{f⁻¹h_V^#, s} h_U^# ⟶ h_U^#).Through the equivalences
Φ_V, Φ_Uof Stacks 00Y1 — the identificationsj_G = j_V,j_F = j_Uof Stacks 04IQ — the two agree: for every sheafHonC/Vthe squareis cartesian, the top edge being the canonical comparison map assembled from Stacks 04IL (1) (Stacks 04IS), which identifiesΦ_U((f_c)⁻¹H) ---------> f⁻¹(j_{V!}H) | | | | f⁻¹(structure map) v v h_U^# ---------s---------> f⁻¹h_V^#j_{U/u(V)}⁻¹ ⋙ Φ_UwithΦ_{u(V)} ⋙ Over.pullback h_c^#, andunderlyingIso(Stacks 04IU, Stacks 03CF), which identifiesj_{u(V)!}(f')⁻¹Hwithf⁻¹j_{V!}H. Equivalently:Φ_U((f_c)⁻¹H) ≅ (f_s)⁻¹(Φ_V H)inSh(D)/h_U^#, i.e. the diagram of topoi of Stacks 04IN agrees with the diagram of topoi of Stacks 04IV.
public theorem isPullback_sheafFunctorToOver_overMap_overPost {C : Type u} [SmallCategory C]
{D : Type u} [SmallCategory D] {J : GrothendieckTopology C} {K : GrothendieckTopology D}
{u : C ⥤ D} [u.IsContinuous J K] [HasFiniteLimits C] [PreservesFiniteLimits u]
(V : C) {U : D} (c : U ⟶ u.obj V) (H : Sheaf (J.over V) (Type u)) :
IsPullback
(((inverseImageCompSheafFunctorToOverIso c K).hom.app
(((Over.post (X := V) u).sheafPullback (Type u) (J.over V)
(K.over (u.obj V))).obj H)).left ≫
pullback.fst
((sheafFunctorToOver (U := u.obj V) K).obj
(((Over.post (X := V) u).sheafPullback (Type u) (J.over V)
(K.over (u.obj V))).obj H)).hom
((presheafToSheaf K (Type u)).map (yoneda.map c)) ≫
(underlyingIso J K u V).hom.app H)
(((sheafFunctorToOver (U := U) K).obj
(((Over.map c).sheafPushforwardContinuous (Type u) (K.over U) (K.over (u.obj V))).obj
(((Over.post (X := V) u).sheafPullback (Type u) (J.over V)
(K.over (u.obj V))).obj H))).hom)
((u.sheafPullback (Type u) J K).map ((sheafFunctorToOver (U := V) J).obj H).hom)
((presheafToSheaf K (Type u)).map (yoneda.map c) ≫
(sheafPullbackSheafifyYonedaIso u J K V).inv)
Sources
Section7.32 Points#
Section 7.32 of the Stacks Project, Tag 00Y3. 12 tags here are carried by 25 declarations of the repository (all in StacksFrontier) and 4 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00Y4, a definition
Tag 00Y4 in the Stacks Project.
PointOfTopos, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Defs.lean, line 27. References: SGA 4 IV (6.1).
A point of the topos
Sh(C, J)is a morphism of topoip : Sh(pt) → Sh(C, J), whereSh(pt) = Setsis modelled byType w. Concretely, a point is an adjoint pairp⁻¹ ⊣ p_*withp⁻¹ : Sh(C, J) ⥤ Type w(the stalk functor) andp_* : Type w ⥤ Sh(C, J)(the skyscraper functor), such thatp⁻¹is left exact.
def PointOfTopos.{w, v, u} {C : Type u} [Category.{v} C] (J : GrothendieckTopology C) : Type _
Tag 04EH, an equation
Tag 04EH in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.GrothendieckTopology.Point.presheafFiberregistered withadd_to_stacksin StacksCore/CategoryTheory/Sites/Point/StalkAsColimit.lean, line 28 (StacksCore): “the stalkF_p = colim_{{(U, x)}ᵒᵖ} F(U)of a presheaf at a point of a site”. References: SGA 4 IV (6.8.7), “special case”; SGA 4 IV (6.10), “more general”; SGA 4 VIII (7.9.3).CategoryTheory.GrothendieckTopology.Point.toPresheafFiberregistered withadd_to_stacksin StacksCore/CategoryTheory/Sites/Point/StalkAsColimit.lean, line 30 (StacksCore): “the canonical mapF(U) ⟶ F_pattached to a neighbourhood(U, x)of the point”.CategoryTheory.GrothendieckTopology.Point.toPresheafFiber_wregistered withadd_to_stacksin StacksCore/CategoryTheory/Sites/Point/StalkAsColimit.lean, line 32 (StacksCore): “the canonical maps are compatible with morphisms of neighbourhoods”.
Tag 00Y5, a definition
Tag 00Y5 in the Stacks Project.
CategoryTheory.GrothendieckTopology.Point.fiber_jointly_surjective_of_ofArrows, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Basic.lean, line 55. The attribute's comment: “(1)”.
Stacks 00Y5 (1) for Mathlib's notion of a point: for a covering family
{U_i → U}_{i ∈ I}of a siteCand a pointΦ, the map∐ u(U_i) → u(U)is surjective, i.e. every element ofu(U)is the image of an element of someu(U_i).Mathlib's
Point.jointly_surjectivefield is stated for covering sieves, giving only someg : Y ⟶ Uin the sieve; here the factorisation ofgthrough one of thef i, which is what membership inSieve.ofArrowsmeans, is used to land inu(U_i).
theorem Point.fiber_jointly_surjective_of_ofArrows {I : Type*} {U : C} {Ui : I → C}
(f : ∀ i, Ui i ⟶ U) (hf : Sieve.ofArrows Ui f ∈ J U) (x : Φ.fiber.obj U) :
∃ (i : I) (y : Φ.fiber.obj (Ui i)), Φ.fiber.map (f i) y = x
CategoryTheory.GrothendieckTopology.Point.fiber_pullbackComparison_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Basic.lean, line 70. The attribute's comment: “(2)”.
Stacks 00Y5 (2) for Mathlib's notion of a point: the fiber functor turns fibre products into fibre products, i.e. the comparison map
u(X ×_Z Y) → u(X) ×_{u(Z)} u(Y)is bijective.Stacks assumes this for the members of a covering; Mathlib derives it — from cofilteredness of the category of elements of
u— for every pair of morphisms with common target, which is the stronger statement proved here.
theorem Point.fiber_pullbackComparison_bijective [LocallySmall.{w} C]
{X Y Z : C} (f : X ⟶ Z) (g : Y ⟶ Z) [HasPullback f g] :
Function.Bijective (pullbackComparison Φ.fiber f g)
CategoryTheory.GrothendieckTopology.Point.sheafFiber_leftExact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Basic.lean, line 81. The attribute's comment: “(3)”.
Stacks 00Y5 (3) for Mathlib's notion of a point: the stalk functor
Sh(C) ⥤ Set,F ↦ F_p, is left exact.
Point.sheafFiberis Mathlib's stalk functor,sheafToPresheaf J _ ⋙ Φ.presheafFiber, the filtered colimit of the sections ofFover the category of elements ofu.
theorem Point.sheafFiber_leftExact [LocallySmall.{w} C] :
PreservesFiniteLimits (Φ.sheafFiber (A := Type w))
Declarations registered for the tag:
CategoryTheory.GrothendieckTopology.Pointregistered withadd_to_stacksin StacksFrontier/CategoryTheory/Sites/Point/Basic.lean, line 39 (StacksFrontier): “Mathlib's definition of a point of a site: the fiber functoru : C ⥤ Type wtogether with the conditions making it a point. Mathlib assumes joint surjectivity on covering sieves (Stacks axiom (1)) and cofilteredness of the category of elements of the fiber, from which Stacks axioms (2) and (3) — exactness of the fiber and of the stalk functor on sheaves — follow rather than being assumed; seePoint.fiber_jointly_surjective_of_ofArrows,Point.fiber_pullbackComparison_bijectiveandPoint.sheafFiber_leftExactbelow.”. References: SGA 4 IV (6.3).
Tag 00Y6, a lemma
Tag 00Y6 in the Stacks Project.
Phi_bijective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkFunctor.lean, line 44. The attribute's comment: “isomorphism”.
Stacks 00Y6. The canonical map
Φ_U : p U ⟶ (h_U)_pfrom the value of the point atUto the stalk of the representable presheafh_Uis bijective.
theorem Phi_bijective (p : C ⥤ Type u) (U : C) :
Function.Bijective (theta p U)
Phi_naturality, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkFunctor.lean, line 52. The attribute's comment: “functoriality”.
Stacks 00Y6. The maps
Φ_Uare natural inU: they commute withp.map gon the source and with the stalk ofyoneda.map gon the target.
theorem Phi_naturality (p : C ⥤ Type u) {U U' : C} (g : U ⟶ U') (x : p.obj U) :
theta p U' (p.map g x) = (presheafStalk p).map (yoneda.map g) (theta p U x)
Tag 04EI, an equation
Tag 04EI in the Stacks Project.
pushforwardPresheaf04EI, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/PresheafPushforwardPoint.lean, line 27. References: SGA 4 I (1.3), “special case”.
Stacks 04EI. The presheaf
u^p Eattached to a functoru : C ⥤ Typeand a typeE: it sends an objectUto the type of functionsu U → E, and a morphismf : V ⟶ Uto precomposition withu f.
def pushforwardPresheaf04EI {C : Type u} [Category.{v} C] (u : Functor C (Type v)) (E : Type v) :
Functor Cᵒᵖ (Type v)
Tag 00Y7, a lemma
Tag 00Y7 in the Stacks Project.
PresheafPushforwardStalkAdjunction.presheafStalk_adjoint_presheafPushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkLeftAdjoint.lean, line 297.
Stacks 00Y7. For any functor
u : C ⥤ Type wsuch that the appropriate colimits exist, the pushforward functorpresheafPushforward uis a right adjoint to the stalk functorpresheafStalk u.
theorem presheafStalk_adjoint_presheafPushforward
(u : C ⥤ Type w)
[HasColimitsOfShape u.Elementsᵒᵖ (Type w)] :
Nonempty (presheafStalk u ⊣ presheafPushforward u)
Tag 00Y8, a lemma
Tag 00Y8 in the Stacks Project.
main_theorem00Y8, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkExact.lean, line 43.
Stacks 00Y8, statement (3), narrow form.
Let
Cbe a small category equipped with a Grothendieck topologyJ, letL : (Cᵒᵖ ⥤ Type v) ⥤ Type vbe the "stalk-at-a-point" functor on presheaves, and letR : Type v ⥤ (Cᵒᵖ ⥤ Type v)be the "point-pushforward" functor. Assume:
L ⊣ R(this packages tag 00Y8 statement (2) at the presheaf level: the stalk functor is left adjoint to the point-pushforward functor), and- for every set
E, the presheafR.obj Eis a sheaf forJ(this is tag 00Y8 statement (1):u^p Eis a sheaf).Then for every presheaf
Fand every setE, precomposition byL.map (toSheafify J F)is a bijection(L.obj (sheafify J F) ⟶ E) → (L.obj F ⟶ E). By Yoneda this is the abstract content of tag 00Y8 statement (3): the canonical mapF_p → (F^#)_pfrom the stalk of a presheaf to the stalk of its sheafification is an isomorphism inType v.
theorem main_theorem00Y8
{C : Type u} [SmallCategory C] (J : GrothendieckTopology C)
[HasWeakSheafify J (Type v)]
(L : (Cᵒᵖ ⥤ Type v) ⥤ Type v) (R : Type v ⥤ Cᵒᵖ ⥤ Type v)
(adj : L ⊣ R)
(hR : ∀ E : Type v, Presheaf.IsSheaf J (R.obj E))
(F : Cᵒᵖ ⥤ Type v) (E : Type v) :
Function.Bijective
(fun g : L.obj (sheafify J F) ⟶ E => L.map (toSheafify J F) ≫ g)
Tag 00Y9, a definition
Tag 00Y9 in the Stacks Project.
pushforwardPoint, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/PushforwardPoint.lean, line 27. References: EGA IV (21.9.1), “more general”.
Stacks 00Y9. The pushforward
p_* Eof an objectEalong a pointpof the site(C, J): the skyscraper sheaf atpwith valueE.
noncomputable def pushforwardPoint
{C : Type u} [Category.{v} C] {J : GrothendieckTopology C}
(p : J.Point) {A : Type*} [Category A] [Limits.HasProducts A] (E : A) :
Sheaf J A
Tag 00YA, a lemma
Tag 00YA in the Stacks Project.
AlgebraicGeometry.RingedToposHom.targetSitePoint, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/EtaleCohomology/RecoveringMorphisms/TargetSitePoint.lean, line 107. The attribute's comment: “(2), applied to the composite of a point of the source site with a morphism of ringed topoi”.
Stacks 00YA (2) along a morphism of ringed topoi. The point of the target site
(D, K)whose stalk functor is the inverse image alongffollowed by the stalk functor of the pointΦof the source site.
def targetSitePoint (f : RingedToposHom X Y) (Φ : X.J.Point.{w}) : Y.J.Point.{w}
CategoryTheory.GrothendieckTopology.Point.pointOfTopos, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 294. The attribute's comment: “(1): a point of the site defines a morphism of topoi Sh(pt) → Sh(C)”. References: SGA 4 IV (6.8.7), “(ii)”; SGA 4 IV (7.1), “more general”.
Stacks 00YA (1). Let
pbe a point of the siteC, given by a fibre functoru = Φ.fiber. Then the pair of functors(p\_*, p^\{-1}) = (Φ.skyscraperSheafFunctor, Φ.sheafFiber)is a morphism of topoiSh(pt) → Sh(C), i.e. a point of the toposSh(C)in the sense of Stacks 00Y4.The two functors are adjoint by
Point.skyscraperSheafAdjunction, andp^{-1}is left exact byPoint.sheafFiber_leftExact(Stacks 00Y5 (3)), which are exactly the two conditions in the definition of a morphism of topoi (Stacks 00XA).
noncomputable def pointOfTopos (Φ : Point.{w} J) : PointOfTopos.{w, v, u} J
CategoryTheory.GrothendieckTopology.Point.sheafFiberComparison, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 372. The attribute's comment: “(2): the canonical comparison from the reconstructed stalk functor”.
The canonical comparison from the stalk functor to
F, induced by a natural transformation on the sheafified representables. On a germ(U, x, σ)it isF(σ)(α_U(x)), viewing the sectionσas a map out ofh_U^#.
noncomputable def sheafFiberComparison : Φ.sheafFiber ⟶ F
PointOfTopos.exists_sitePoint_fiber_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 523. The attribute's comment: “(2): reconstruction of the site point”.
Stacks 00YA (2). Every point
pof the topos arises from a point of the site whose fiber functor isU ↦ p⁻¹(h_U^#)on the nose.
PointOfTopos.exists_sitePointis the same reconstruction stated up to isomorphism of stalk functors; this form is the one consumers need when they have to transport along the identity of fibre functors witheqToIso.
theorem exists_sitePoint_fiber_eq {C : Type u} [Category.{v} C] {J : GrothendieckTopology C}
(p : PointOfTopos.{max u v, v, u} J) :
∃ Φ : GrothendieckTopology.Point.{max u v} J,
Φ.fiber = Sheaf.sheafifiedYoneda J ⋙ p.inverseImage
PointOfTopos.isIso_sheafFiberComparison, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 602. The attribute's comment: “(2): the canonical inverse-image comparison is an isomorphism”.
Stacks 00YA (2). The canonical comparison identifies the reconstructed stalk functor with
p.inverseImage.
theorem isIso_sheafFiberComparison :
IsIso (Φ.sheafFiberComparison p.inverseImage e.hom)
PointOfTopos.isIso_conjugate_sheafFiberComparison, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 635. The attribute's comment: “(2): recovery of the pushforward by the adjoint mate”.
Stacks 00YA (2). The adjoint mate of the canonical comparison is an isomorphism
p.pushforward ⟶ Φ.skyscraperSheafFunctor, recovering the pushforward compatibly with the given adjunctions.
theorem isIso_conjugate_sheafFiberComparison :
IsIso (conjugateEquiv p.adj Φ.skyscraperSheafAdjunction
(Φ.sheafFiberComparison p.inverseImage e.hom))
Tag 04EL, a lemma
Tag 04EL in the Stacks Project.
CategoryTheory.GrothendieckTopology.Point.exists_equivalence_isMorphismOfSites_pushforward_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Points.lean, line 586.
Stacks 04EL. Let
Φbe a point of a locallyw-small site(C, J), with fibre functoru = Φ.fiber. Letι : S ⥤ Type wbe a full subcategory of the category of sets in which some objectptis a singleton, letKbe the topology onSwhose covering sieves are the jointly surjective ones, and suppose the fibre functor factors asu ⋙ ιfor someu : C ⥤ S. Then
- there is an equivalence
i : Sh(pt) → Sh(S, K)whose inverse image isF ↦ F(pt), hence whose forward functor sends a setEto the sheafV ↦ Mor(ι V, E);u : C ⥤ Sdefines a morphism of sitesf : (S, K) → (C, J); and- the composition
Sh(pt) → Sh(S, K) → Sh(C, J)is the morphism of topoi(p_*, p⁻¹)of the point, in the sense thati_* ⋙ f_*is isomorphic to the skyscraper sheaf functorp_*.
public theorem exists_equivalence_isMorphismOfSites_pushforward_iso {C : Type u} [Category.{v} C]
{J : GrothendieckTopology C} [LocallySmall.{w} C] (Φ : Point.{w} J) {S : Type w}
[SmallCategory S] (ι : S ⥤ Type w) [ι.Full] [ι.Faithful] (pt : S) (hpt : Unique (ι.obj pt))
(K : GrothendieckTopology S)
(hK :
∀ (V : S) (R : Sieve V),
R ∈ K V ↔ ∀ x : ι.obj V, ∃ (W : S) (f : W ⟶ V) (y : ι.obj W), R.arrows f ∧ ι.map f y = x)
(u : C ⥤ S) (hu : u ⋙ ι ≅ Φ.fiber) :
∃ (e : Type w ≌ Sheaf K (Type w)) (_ : _root_.IsMorphismOfSites.{w} u J K),
e.inverse = sheafToPresheaf K (Type w) ⋙ (evaluation Sᵒᵖ (Type w)).obj (Opposite.op pt) ∧
Nonempty
(e.functor ⋙ u.sheafPushforwardContinuous (Type w) J K ≅
Φ.skyscraperSheafFunctor (A := Type w))
Tag 05UX, a lemma
Tag 05UX in the Stacks Project.
ToposPoint.epsilon_comp_eta, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Skyscraper.lean, line 94.
Stacks 05UX. For any set
Ethere are canonical mapsE ⟶ (p_* E)_p ⟶ Ewhose composition is the identity ofE.Proof: apply naturality of the counit
εofp⁻¹ ⊣ p_*to the constant mapi_e : PUnit → E, then evaluate atdefault : p⁻¹(p_*(PUnit)).
theorem epsilon_comp_eta (E : Type v) : p.epsilon E ∘ p.eta E = id
Tag 05UY, a lemma
Tag 05UY in the Stacks Project.
PointOfTopos.preservesLimitsOfSize_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 216. The attribute's comment: “commutes with arbitrary limits”.
Stacks 05UY. The pushforward
p_*of a point of a topos commutes with arbitrary limits, because it is a right adjoint.
theorem preservesLimitsOfSize_pushforward : PreservesLimitsOfSize.{w₁, w₂} p.pushforward
PointOfTopos.preservesFiniteLimits_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 221. The attribute's comment: “is left exact”. References: SGA 4 IV (3.1.2), “point; finite limits”.
Stacks 05UY. The pushforward
p_*of a point of a topos is left exact.
theorem preservesFiniteLimits_pushforward : PreservesFiniteLimits p.pushforward
PointOfTopos.faithful_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 228. The attribute's comment: “is faithful”.
Stacks 05UY. The pushforward
p_*of a point of a topos is faithful: the counitε_E : p^{-1}p_*E → Eis a (split) epimorphism, andεis natural.
theorem faithful_pushforward : p.pushforward.Faithful
PointOfTopos.preservesEpimorphisms_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 241. The attribute's comment: “transforms surjections into surjections. The other claim of the same sentence of the source — that p_* commutes with coequalizers — is FALSE and is not claimed anywhere in this file; see Point.subsingleton_fiber_of_preservesCoequalizers”.
Stacks 05UY. The pushforward
p_*of a point of a topos transforms surjections into surjections: every epimorphism of sets is a split epimorphism, and a split epimorphism is carried to a split epimorphism by any functor.
theorem preservesEpimorphisms_pushforward : p.pushforward.PreservesEpimorphisms
PointOfTopos.reflectsMonomorphisms_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 248. The attribute's comment: “reflects injections”.
Stacks 05UY. The pushforward
p_*of a point of a topos reflects injections.
theorem reflectsMonomorphisms_pushforward : p.pushforward.ReflectsMonomorphisms
PointOfTopos.reflectsEpimorphisms_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 254. The attribute's comment: “reflects surjections”.
Stacks 05UY. The pushforward
p_*of a point of a topos reflects surjections.
theorem reflectsEpimorphisms_pushforward : p.pushforward.ReflectsEpimorphisms
PointOfTopos.reflectsIsomorphisms_pushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Topos.lean, line 266. The attribute's comment: “reflects isomorphisms”.
Stacks 05UY. The pushforward
p_*of a point of a topos reflects isomorphisms: it reflects both injections and surjections, and a map of sets which is both injective and surjective is bijective.
theorem reflectsIsomorphisms_pushforward : p.pushforward.ReflectsIsomorphisms
Sources
Section7.33 Constructing points#
Section 7.33 of the Stacks Project, Tag 05UZ. 4 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0F4E, a lemma
Tag 0F4E in the Stacks Project.
preservesFiniteLimits_sheafFiber, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkIso.lean, line 27.
Stacks 0F4E. Let
Φbe a point of the site(C, J), i.e. a functoru : C ⥤ Typetogether with cofilteredness of its category of neighbourhoods. Then the stalk functorSh(C) ⥤ SetatΦis left exact, i.e. it preserves finite limits.
theorem preservesFiniteLimits_sheafFiber
{C : Type u} [SmallCategory C] {J : GrothendieckTopology C}
(Φ : J.Point) :
Limits.PreservesFiniteLimits (Φ.sheafFiber (A := Type u))
Tag 00YB, a lemma
Tag 00YB in the Stacks Project.
StacksStalk.nbh_isCofiltered, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/NeighbourhoodsCofiltered.lean, line 70. The attribute's comment: “(1)”. References: SGA 4 IV (6.8.2), “special case”; SGA 4 IV (6.8.5), “partial”.
Statement 1 (Main, tag
00YB): under the hypotheses, the category of neighbourhoodsNbh(p)ofpis cofiltered.
theorem nbh_isCofiltered [HasTerminal C] [HasPullbacks C]
(u : C ⥤ Type w) (hu : IsPoint u) : IsCofiltered u.Elements
StacksStalk.sheafStalkFunctor_preservesFiniteLimits, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/NeighbourhoodsCofiltered.lean, line 106. The attribute's comment: “(2)”.
Statement 2 (Consequence, tag
00YB): under the hypotheses, the stalk functor on sheaves commutes with finite limits, i.e. it is left exact.
theorem sheafStalkFunctor_preservesFiniteLimits
[HasTerminal C] [HasPullbacks C] (J : GrothendieckTopology C)
(u : C ⥤ Type w) (hu : IsPoint u) :
PreservesFiniteLimits
(sheafToPresheaf J (Type w) ⋙ CategoryTheory.elementColimit u (Type w))
Tag 00YC, a proposition
Tag 00YC in the Stacks Project.
CategoryTheory.GrothendieckTopology.Point.ofPreservesFiniteLimits, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OfPreservesFiniteLimits.lean, line 104. References: SGA 4 IV (6.3), “left exact ⇒ point”.
On a site in which finite limits exist, the point with fiber functor
u : C ⥤ Type w, forucommuting with finite limits, with initially small category of elements, and jointly surjective on covering sieves.
def ofPreservesFiniteLimits (u : C ⥤ Type w) [PreservesFiniteLimits u]
[InitiallySmall.{w} u.Elements] (hu : u.CoveringJointlySurjective J) :
Point.{w} J
CategoryTheory.GrothendieckTopology.Point.equivFiber, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OfPreservesFiniteLimits.lean, line 124. References: SGA 4 IV (6.3), “characterization”.
Let
Cbe a site in which finite limits exist. Then the points ofCcorrespond bijectively to the functorsu : C ⥤ Type wsuch that
ucommutes with finite limits, and∐ u(U_i) → u(U)is surjective for every covering{U_i → U}(in the sieve formFunctor.CoveringJointlySurjective), and whose category of elements is initially small,the bijection being
Φ ↦ Φ.fiberin one direction andofPreservesFiniteLimitsin the other.
noncomputable def equivFiber :
Point.{w} J ≃ {u : C ⥤ Type w //
InitiallySmall.{w} u.Elements ∧ PreservesFiniteLimits u ∧
u.CoveringJointlySurjective J}
Tag 00YD, a remark
Tag 00YD in the Stacks Project.
Counterexample.u_not_point, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/NonExactStalkCounterexample.lean, line 534.
Statement 3. Because the stalk functor
ℱ ↦ ℱ_pfails to preserve monomorphisms (Statement 2), it fails to be left exact.
theorem u_not_point : ¬ PreservesFiniteLimits stalkFunctor
Sources
Section7.34 Points and morphisms of topoi#
Section 7.34 of the Stacks Project, Tag 05V0. 3 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 0F4F, a lemma
Tag 0F4F in the Stacks Project.
CategoryTheory.Stalk.presheafPushforward_stalk_iso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkPresheafPushforward.lean, line 73.
Stacks 0F4F, packaged as the existence of the natural isomorphism
(u_p F)_v ≅ F_{v ∘ u}.
theorem presheafPushforward_stalk_iso (u : C ⥤ D) (v : D ⥤ Type u) :
Nonempty (u.op.lan ⋙ presheafStalk v ≅ presheafStalk (u ⋙ v))
Tag 05V1, a lemma
Tag 05V1 in the Stacks Project.
Stacks.Sheaves.StalkInverseImage.stalkAddEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Category/ModuleCat/Sheaf/StalkInverseImageModules.lean, line 496. The attribute's comment: “for sheaves of modules, at a point of a site, for a morphism of topoi whose stalk functor at the target point is the inverse image followed by the stalk functor at the source point”.
The stalk at
Φof the inverse image alonggof a sheaf ofO-modules is the stalk of that sheaf atΨ, as an isomorphism of additive groups. It is semilinear overStacks.Sheaves.StalkInverseImage.stalkRingEquiv; seeStacks.Sheaves.StalkInverseImage.stalkAddEquiv_smul.
def stalkAddEquiv :
(Stacks.sheafModuleFiber Ψ O).obj G ≃+
(Stacks.sheafModuleFiber Φ (inverseImageRingSheaf g O)).obj
((inverseImageModules g O).obj G)
Stacks.Sheaves.StalkInverseImage.stalkAddEquiv_smul, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Category/ModuleCat/Sheaf/StalkInverseImageModules.lean, line 526. The attribute's comment: “semilinearity of the comparison, for sheaves of modules”.
The isomorphism of stalk modules is semilinear over the isomorphism of stalk rings: the stalk at
Φof the inverse image ofGis the stalk ofGatΨ, with the scalars carried alongO_Ψ ≅ (g⁻¹O)_Φ.
theorem stalkAddEquiv_smul (r : (Ψ.presheafFiber (A := RingCat.{w})).obj O.obj)
(m : (Stacks.sheafModuleFiber Ψ O).obj G) :
stalkAddEquiv g O Φ Ψ e G (r • m) =
stalkRingEquiv g O Φ Ψ e r • stalkAddEquiv g O Φ Ψ e G m
Stacks.Sheaves.StalkInverseImage.stalkNatIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Algebra/Category/ModuleCat/Sheaf/StalkInverseImageModules.lean, line 600. The attribute's comment: “for sheaves of modules, as a natural isomorphism of stalk functors”.
The stalk functor at
Ψis the inverse image of sheaves of modules followed by the stalk functor atΦand restriction of scalars along the isomorphism of stalk rings.
def stalkNatIso :
Stacks.sheafModuleFiber Ψ O ≅
inverseImageModules g O ⋙ Stacks.sheafModuleFiber Φ (inverseImageRingSheaf g O) ⋙
ModuleCat.restrictScalars (stalkRingEquiv g O Φ Ψ e).toRingHom
Stacks.Sheaves.DerivedPullback.KFlatPullbackMorphismOfSites.targetStalkAddEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cohomology/DerivedPullback/StalkOfInverseImageAtTheTargetPoint.lean, line 106. The attribute's comment: “for sheaves of modules, at the point of the target site attached to a point of the source site by part (2) of Stacks 00YA”.
Module-level Stacks 05V1 at the named point of the target site. The stalk at
Φof the inverse image of a sheaf ofO'-modules is the stalk of that sheaf atΨ, as an isomorphism of additive groups; it is semilinear overtargetStalkRingEquiv.
def targetStalkAddEquiv :
(Stacks.sheafModuleFiber (targetPoint f hu Φ)
(Stacks.SheafOfModules.Tensor.ringSheaf Y.O)).obj G ≃+
(Stacks.sheafModuleFiber Φ
(inverseImageRingSheaf (f.toToposHom hu)
(Stacks.SheafOfModules.Tensor.ringSheaf Y.O))).obj
((inverseImageModules (f.toToposHom hu)
(Stacks.SheafOfModules.Tensor.ringSheaf Y.O)).obj G)
Stacks.Sheaves.DerivedPullback.KFlatPullbackMorphismOfSites.targetStalkAddEquiv_smul, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cohomology/DerivedPullback/StalkOfInverseImageAtTheTargetPoint.lean, line 122. The attribute's comment: “semilinearity, at the point of the target site attached to a point of the source site”.
Stacks 05V1 for sheaves of modules at the named point. The isomorphism of stalk modules is semilinear over the isomorphism of stalk rings.
theorem targetStalkAddEquiv_smul
(r : ((targetPoint f hu Φ).presheafFiber (A := RingCat.{u})).obj
(Stacks.SheafOfModules.Tensor.ringSheaf Y.O).obj)
(m : (Stacks.sheafModuleFiber (targetPoint f hu Φ)
(Stacks.SheafOfModules.Tensor.ringSheaf Y.O)).obj G) :
targetStalkAddEquiv f hu Φ G (r • m) =
targetStalkRingEquiv f hu Φ r • targetStalkAddEquiv f hu Φ G m
Stacks.Sheaves.DerivedPullback.KFlatPullbackMorphismOfSites.targetStalkNatIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cohomology/DerivedPullback/StalkOfInverseImageAtTheTargetPoint.lean, line 162. The attribute's comment: “for sheaves of modules, as a natural isomorphism of stalk functors, at the point of the target site attached to a point of the source site”.
Module-level Stacks 05V1 at the named point, as a natural isomorphism of stalk functors. The stalk functor at
Ψis the inverse image of sheaves of modules followed by the stalk functor atΦand restriction of scalars along the isomorphism of stalk rings.This is the form a statement about complexes consumes:
CategoryTheory.NatIso.mapHomologicalComplexcarries it to an isomorphism of the degreewise functors on cochain complexes.
def targetStalkNatIso :
Stacks.sheafModuleFiber (targetPoint f hu Φ) (Stacks.SheafOfModules.Tensor.ringSheaf Y.O) ≅
inverseImageModules (f.toToposHom hu) (Stacks.SheafOfModules.Tensor.ringSheaf Y.O) ⋙
Stacks.sheafModuleFiber Φ
(inverseImageRingSheaf (f.toToposHom hu) (Stacks.SheafOfModules.Tensor.ringSheaf Y.O)) ⋙
ModuleCat.restrictScalars (targetStalkRingEquiv f hu Φ).toRingHom
point_morphism_sites, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkAlongMorphism.lean, line 47.
Stacks 05V1. For a point
qof(D, K)and a morphism of sites given byu : C ⥤ D, the stalk functor at the induced pointq.comap u huof(C, J)is isomorphic to taking the inverse image alonguand then the stalk atq.
theorem point_morphism_sites
{C : Type u₁} [Category.{v} C] {D : Type u₂} [Category.{v} D]
{J : GrothendieckTopology C} {K : GrothendieckTopology D}
(u : C ⥤ D) [RepresentablyFlat u] [u.IsContinuous J K]
(hu : CoverPreserving J K u)
(q : Point.{w} K)
[InitiallySmall (u ⋙ q.fiber).Elements]
(A : Type*) [Category.{v} A] [HasProducts.{w} A]
[(u.sheafPushforwardContinuous A J K).IsRightAdjoint]
[HasColimitsOfSize.{w, w} A] :
Nonempty ((q.comap u hu).sheafFiber (A := A) ≅ u.sheafPullback A J K ⋙ q.sheafFiber)
Tag 05V2, a lemma
Tag 05V2 in the Stacks Project.
CategoryTheory.GrothendieckTopology.Point.sheafFiber_inverseImage, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/DenseSubsite/NatIsoTransport.lean, line 116. The attribute's comment: “at a point of the site”.
[Stacks Project, Tag 05V2] at a point of the site. For a morphism of topoi
ffromSh(C, J)toSh(D, K)and a pointΦof the site(C, J), the fibre atΦof the inverse image of a sheafℱon(D, K)is the stalk ofℱat the composed point ofSh(D, K).No bridge between the two notions of point has to be built: a point of a site already is a point of its topos, by
CategoryTheory.GrothendieckTopology.Point.pointOfTopos(Stacks 00YA (1)), whose inverse image is the fibre functor on the nose (CategoryTheory.GrothendieckTopology.Point.pointOfTopos_inverseImage). SoMorphismOfTopoi.stalk_inverseImageapplies verbatim, and this statement is it.
theorem sheafFiber_inverseImage {D : Type u'} [Category.{v'} D] {K : GrothendieckTopology D}
(f : MorphismOfTopoi (Sheaf J (Type w)) (Sheaf K (Type w))) (F : Sheaf K (Type w)) :
Φ.sheafFiber.obj (f.inverseImage.obj F) = (f.compPoint Φ.pointOfTopos).stalk F
MorphismOfTopoi.stalk_inverseImage, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ToposPoints.lean, line 47.
For a morphism of topoi
f : Sh(D) → Sh(C), a pointqofSh(D)and a sheafFonC, the stalk(f⁻¹ F)_qis the stalkF_{f ∘ q}at the composite pointf.compPoint q.
theorem stalk_inverseImage (f : MorphismOfTopoi (Sheaf K (Type w)) (Sheaf J (Type w)))
(q : PointOfTopos.{w, v', u'} K) (F : Sheaf J (Type w)) :
q.stalk (f.inverseImage.obj F) = (f.compPoint q).stalk F
Sources
Section7.35 Localization and points#
Section 7.35 of the Stacks Project, Tag 04EK. 3 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04H2, a lemma
Tag 04H2 in the Stacks Project.
CategoryTheory.GrothendieckTopology.Point.sheafFiberOverIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/LocalizedPoint.lean, line 107. References: SGA 4 IV (6.7), “point over (p,ξ), j_X”; SGA 4 IV (11.3.5), “partial”.
Stacks 04H2. The point
q = Φ.over xof the localized siteC/Ulies above the pointΦofC: for every sheafFonCthe stalk ofFatΦagrees with the stalk of its restrictionj_U⁻¹F = F.over Uatq. In other words the triangle formed byq,Φand the localization morphismj_U : Sh(C/U) ⟶ Sh(C)commutes.
noncomputable def sheafFiberOverIso :
J.overPullback A X ⋙ (Φ.over x).sheafFiber ≅ Φ.sheafFiber
Tag 04H3, a lemma
Tag 04H3 in the Stacks Project.
CategoryTheory.FunctorToTypes.fromOverSubfunctor_injective, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OverBijection.lean, line 115. The attribute's comment: “injectivity of x ↦ q_x”.
Stacks 04H3, injectivity: distinct elements
xofu(U)give distinct pointsq_xofC/U, becausexis recovered fromv_xas the unique section over the final objectU/U.
lemma fromOverSubfunctor_injective :
Function.Injective (fun x : F.obj X => fromOverSubfunctor F x)
CategoryTheory.FunctorToTypes.exists_eq_fromOverSubfunctor, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OverBijection.lean, line 127. The attribute's comment: “surjectivity of x ↦ q_x, from the cartesian squares v(V/U) = u(V) ×_{u(U)} v(U/U)”.
Stacks 04H3, surjectivity: a subfunctor of
Over.forget U ⋙ uwhose sections over the final objectU/Uform a singleton{x}and whose cartesian squares hold isv_x. This is the last paragraph of Stacks' proof: "the top horizontal map gives a bijectionv(V/U) → {y ∈ u(V) | y ↦ x}".
lemma exists_eq_fromOverSubfunctor {S : Subfunctor (Over.forget X ⋙ F)} (hS : IsFromOver F X S) :
∃ x : F.obj X, S = fromOverSubfunctor F x
CategoryTheory.FunctorToTypes.fromOverSubfunctorEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OverBijection.lean, line 150. The attribute's comment: “the correspondence u(U) ≃ subfunctors satisfying IsFromOver; the identification of those subfunctors with points of C/U over p is NOT proved (needs 00WJ, 00XM, 00YA)”.
Stacks 04H3. The construction of Stacks 04H2 gives a one to one correspondence
between the elements ofu(U) ≃ {S : Subfunctor (Over.forget U ⋙ u) // IsFromOver u U S} , x ↦ v_x ,u(U)and the subfunctorsSofOver.forget U ⋙ usatisfying the two conditions ofIsFromOver.WHAT THIS DOES NOT SAY.
IsFromOveris the characterisation that Stacks' proof derives fromj_U ∘ q = p; that derivation is not formalized here, so this equivalence is not yet an equivalence with "the fibre functors of the points ofC/Ulying overp". The missing step is to produce, from an isomorphismj_U⁻¹ ⋙ q.sheafFiber ≅ p.sheafFiber(the formalized reading ofj_U ∘ q = p, cf. 04H2'ssheafFiberOverIso), a subfunctorSwithIsFromOver u U SandS.toFunctor = q.fiber. That needs exactness of sheafification (00WJ), the identification(j_U⁻¹h_V)^# = j_U⁻¹(h_V^#)(00XM) andu(V) = p⁻¹(h_V^#)(00YA), none of which is available in this repository. Until it lands, 04H3 is covered only up to that identification.
noncomputable def fromOverSubfunctorEquiv :
F.obj X ≃ { S : Subfunctor (Over.forget X ⋙ F) // IsFromOver F X S }
Tag 04H4, a lemma
Tag 04H4 in the Stacks Project.
CategoryTheory.OverShriek.sheafFiberSigmaEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/OverShriekFiber.lean, line 203.
Stacks 04H4. Let
Cbe a site,pa point ofCgiven byu : C ⥤ Set, andUan object ofC. For any sheafFonC/U,the coproduct being over the points(j_{U!}F)_p = ∐_x F_{q_x} ,q_xofC/Uattached to the elementsxofu(U)as in Stacks 04H2.Here
j_{U!}is(Over.forget U).sheafPullback, the left adjoint of the restrictionj_U⁻¹ = GrothendieckTopology.overPullback, and the coproduct is the sigma type, which is the coproduct inType v. The proof combines the presheaf-level statementpresheafFiberSigmaEquivwith Stacks 03CD (OverShriek.sheafifyIso:j_{U!}of a sheafification is the sheafification of the coproduct presheaf) and Stacks 00Y8 (Point.presheafFiberandPoint.sheafFiberagree across sheafification).
def sheafFiberSigmaEquiv (F : Sheaf (J.over U) (Type v)) :
(Σ x : Φ.fiber.obj U, (Φ.over x).sheafFiber.obj F) ≃
Φ.sheafFiber.obj (((Over.forget U).sheafPullback (Type v) (J.over U) J).obj F)
Sources
Section7.36 2-morphisms of topoi#
Section 7.36 of the Stacks Project, Tag 04I9. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04I9, the section
Tag 04I9 in the Stacks Project.
TwoMorphismOfTopoi.hcomp, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/TwoMorphismOfTopoi.lean, line 183. The attribute's comment: “horizontal composition s ⋆ t of 2-morphisms of topoi, and its two descriptions”.
Horizontal composition
s ⋆ tof 2-morphisms of topoi: a 2-morphism fromf' ∘ ftog' ∘ g, given onℱby either of the two compositesf'_*f_*ℱ ⟶ g'_*g_*ℱ.
def hcomp (s : TwoMorphismOfTopoi f' g') (t : TwoMorphismOfTopoi f g) :
TwoMorphismOfTopoi (f'.comp f) (g'.comp g)
Tag 04IA, a definition
Tag 04IA in the Stacks Project.
TwoMorphismOfTopoi, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/TwoMorphismOfTopoi.lean, line 57. The attribute's comment: “a 2-morphism f ⇒ g of morphisms of topoi is a transformation f_ ⟶ g_”. References: SGA 4 IV (3.2); SGA 4 IV (3.3.2), “2-arrows”.
A 2-morphism from a morphism of topoi
f : E → Fto a morphism of topoig : E → Fis a transformation of functorst : f_* ⟶ g_*.
def TwoMorphismOfTopoi {E : Type u} [Category.{v} E] {F : Type u'} [Category.{v'} F]
(f g : MorphismOfTopoi E F) : Type _
Sources
Section7.37 Morphisms between points#
Section 7.37 of the Stacks Project, Tag 00YG. 2 tags here are carried by 3 declarations of the repository (all in StacksFrontier) and 1 registered declaration, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00YH, a lemma
Tag 00YH in the Stacks Project.
Stacks.Sites.PointStalk.tStalk, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkFunctoriality.lean, line 94.
Tag 00YH, Lemma 7.37.1: the canonical natural transformation of stalk functors
t_stalk : (-)_{p'} ⟹ (-)_pinduced byt : u' → u. Its components aretStalkApp; naturality istStalk_naturality(part 2).
noncomputable def tStalk (uu uu' : C ⥤ Type u) (t : uu' ⟶ uu) :
presheafStalk uu' ⟶ presheafStalk uu
Stacks.Sites.PointStalk.tStalkApp_stalkMk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkFunctoriality.lean, line 104. The attribute's comment: “(1)”.
Part 1 (Well-defined + defining formula). The stalk transformation acts on a representative
[(U, x', s)]by[(U, x', s)] ↦ [(U, t_U(x'), s)]; this isι_tStalkAppatop ⟨U, x'⟩applied tos, since(map t).op.obj (op ⟨U, x'⟩)isop ⟨U, t.app U x'⟩.
theorem tStalkApp_stalkMk (uu uu' : C ⥤ Type u) (t : uu' ⟶ uu) (F : Cᵒᵖ ⥤ Type u)
(U : C) (x' : uu'.obj U) (s : F.obj (Opposite.op U)) :
tStalkApp uu uu' t F (stalkMk uu' F U x' s) = stalkMk uu F U (t.app U x') s
Stacks.Sites.PointStalk.tStalkApp_theta, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/StalkFunctoriality.lean, line 117. The attribute's comment: “(3)”.
Part 3 (Compatibility with
t, the agreement of Tag 00Y6). Under the canonical identificationsθ^{u'}_U : u'(U) ≅ (h_U)_{p'}andθ^u_U : u(U) ≅ (h_U)_p, the map(t_stalk)_{h_U} : (h_U)_{p'} → (h_U)_pcorresponds tot_U : u'(U) → u(U). SinceθisstalkMk … (𝟙 U), this is the caseF := yoneda.obj U,s := 𝟙 UoftStalkApp_stalkMk.
theorem tStalkApp_theta (uu uu' : C ⥤ Type u) (t : uu' ⟶ uu) (U : C) (x' : uu'.obj U) :
tStalkApp uu uu' t (yoneda.obj U) (theta uu' U x') = theta uu U (t.app U x')
Tag 00YI, a definition
Tag 00YI in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.GrothendieckTopology.Point.Homregistered withadd_to_stacksin StacksCore/CategoryTheory/Sites/Point/EnoughPoints.lean, line 21 (StacksCore): “a morphism of points of a site is a transformation of the fibre functors in the opposite direction”.
Sources
Section7.38 Sites with enough points#
Section 7.38 of the Stacks Project, Tag 00YJ. 6 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00YK, a definition
Tag 00YK in the Stacks Project.
CategoryTheory.GrothendieckTopology.IsConservativeFamily, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ConservativeFamily.lean, line 97. The attribute's comment: “(1)”. References: SGA 4 IV (6.4.1), “conservative family”.
Stacks 00YK (1). A family of points
{p_i}_{i ∈ I}of a site(C, J)is conservative if every map of sheaves of setsφ : F ⟶ Gwhich is an isomorphism on all the fibresF_{p_i} ⟶ G_{p_i}is an isomorphism.
def IsConservativeFamily {ι : Type t} (p : ι → Point.{w} J) : Prop
CategoryTheory.GrothendieckTopology.HasConservativeFamily, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ConservativeFamily.lean, line 105. The attribute's comment: “(2)”. References: SGA 4 IV (6.4.1), “enough points”.
Stacks 00YK (2). A site
(C, J)has enough points if there exists a conservative family of points. No smallness is required of the family; contrastCategoryTheory.GrothendieckTopology.HasEnoughPoints, which asks for aw-small one.
def HasConservativeFamily (J : GrothendieckTopology C) : Prop
Tag 00YL, a lemma
Tag 00YL in the Stacks Project.
CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.nonempty_isLimit_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/SitesWithEnoughPoints.lean, line 141. The attribute's comment: “(4): a cone over a finite diagram of sheaves is a limit if and only if it is one in every stalk at a conservative family of points.”.
Stacks 00YL (4). Let
(C, J)be a site and letPbe a conservative family of points of it. LetG : K ⥤ Sh(C)be a finite diagram of sheaves with values inA. Then a cone overGis a limit if and only if its image under every stalk functorF ↦ F_{p_i},p_i ∈ P, is a limit.
public theorem nonempty_isLimit_iff {C : Type u} [Category.{v} C]
{J : GrothendieckTopology C} {P : ObjectProperty (GrothendieckTopology.Point.{w} J)}
(hP : P.IsConservativeFamilyOfPoints) {A : Type u'} [Category.{v'} A] [LocallySmall.{w} C]
[HasColimitsOfSize.{w, w} A] [HasFiniteLimits A] [AB5OfSize.{w, w} A]
{FC : A → A → Type*} {CC : A → Type w}
[∀ X Y : A, FunLike (FC X Y) (CC X) (CC Y)] [ConcreteCategory.{w} A FC]
[(forget A).ReflectsIsomorphisms] [PreservesFilteredColimitsOfSize.{w, w} (forget A)]
[J.HasSheafCompose (forget A)]
{K : Type u''} [SmallCategory K] [FinCategory K] {G : K ⥤ Sheaf J A} (c : Cone G) :
Nonempty (IsLimit c) ↔
∀ Φ : P.FullSubcategory, Nonempty (IsLimit ((Φ.obj.sheafFiber (A := A)).mapCone c))
Tag 00YM, a lemma
Tag 00YM in the Stacks Project.
stalkSet_map_germ, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/GermNaturality.lean, line 169.
Germ naturality (narrowed substantiation).
For distinct sections
s ≠ s' ∈ F(U), the Stacks argument identifies an indexiand a pointx ∈ u_i(U)separating their germs in the stalk atp_i. The "Unwinding the definitions" step rests on the identity below: pushing a germ00YM along a sheaf morphism agrees with the germ00YM of the pushed section. The remaining categorical packaging (equalizer of representable maps, etc.) is deferred.
lemma stalkSet_map_germ {C : Type u} [SmallCategory C] (J : GrothendieckTopology C)
(P : C ⥤ Type u)
[P.IsContinuous J (GrothendieckTopology.trivial (Type u))]
[(P.sheafPushforwardContinuous (Type u) J
(GrothendieckTopology.trivial (Type u))).IsRightAdjoint]
{F G : Sheaf J (Type u)} (φ : F ⟶ G) (U : C)
(s : F.obj.obj (Opposite.op U)) (x : P.obj U) :
(stalkSet J P).map φ (germ00YM J P F U s x)
= germ00YM J P G U (φ.hom.app (Opposite.op U) s) x
Tag 04H6, a lemma
Tag 04H6 in the Stacks Project.
CategoryTheory.GrothendieckTopology.IsConservativeFamily.over, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ConservativeFamilyOver.lean, line 97.
Stacks 04H6. Let
{p_i}_{i ∈ I}be a conservative family of points of a site(C, J), with fibre functorsu_i, and letXbe an object ofC. Then the pointsq_{i,x} = (p i).over xof the localized siteC/Xof Stacks 04H2, fori ∈ Iandx ∈ u_i(X), form a conservative family of points ofC/X.
theorem IsConservativeFamily.over {ι : Type t} {p : ι → Point.{w} J}
(hp : IsConservativeFamily p) (X : C) [HasSheafify (J.over X) (Type w)] :
IsConservativeFamily (fun ix : Σ i, (p i).fiber.obj X ↦ (p ix.1).over ix.2)
CategoryTheory.GrothendieckTopology.HasConservativeFamily.over, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ConservativeFamilyOver.lean, line 114. The attribute's comment: “in particular”.
Stacks 04H6, the "in particular": if a site
(C, J)has enough points, i.e. a conservative family of points (Stacks 00YK (2)), then so does every localizationC/X.
theorem HasConservativeFamily.over (h : HasConservativeFamily.{w} J) (X : C)
[HasSheafify (J.over X) (Type w)] : HasConservativeFamily.{w} (J.over X)
Tag 06UL, a lemma
Tag 06UL in the Stacks Project.
CategoryTheory.ObjectProperty.IsConservativeFamilyOfPoints.of_coversTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Conservative.lean, line 95. References: SGA 4 IV (6.7.4), “second assertion”; SGA 4 IV (6.7.3), “converse direction”.
Stacks 06UL, the conservativity step. If the
U_icover the final object and eachP iis a conservative family of points ofC/U_i, then the pushed-forward familypointsOfLocalizationsis a conservative family of points ofC.
theorem ObjectProperty.IsConservativeFamilyOfPoints.of_coversTop
(hU : J.CoversTop Ui) (hP : ∀ i, (P i).IsConservativeFamilyOfPoints) :
(GrothendieckTopology.pointsOfLocalizations Ui P).IsConservativeFamilyOfPoints
CategoryTheory.GrothendieckTopology.hasEnoughPoints_of_coversTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Conservative.lean, line 113. References: SGA 4 IV (6.7.3), “converse”; SGA 4 IV (6.7.4), “second assertion”.
Stacks 06UL. Let
Cbe a site and{U_i}_{i ∈ I}a family of objects such that theU_icover the final object (hypothesis (1), see the module docstring) and each localizationC/U_ihas enough points (hypothesis (2)). ThenChas enough points.
theorem GrothendieckTopology.hasEnoughPoints_of_coversTop [Small.{w} I]
(hU : J.CoversTop Ui) [∀ i, HasEnoughPoints.{w} (J.over (Ui i))] :
HasEnoughPoints.{w} J
CategoryTheory.GrothendieckTopology.HasConservativeFamily.of_coversTop, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/ConservativeFamilyLocality.lean, line 51.
Stacks 06UL for
CategoryTheory.GrothendieckTopology.HasConservativeFamily. If a family of objects covers the final object and each localization at a member of the family has a conservative family of points, then so does the site itself.
theorem HasConservativeFamily.of_coversTop (hU : J.CoversTop Ui)
(hP : ∀ i, (J.over (Ui i)).HasConservativeFamily.{w}) :
J.HasConservativeFamily.{w}
Tag 0F4G, a lemma
Tag 0F4G in the Stacks Project.
CategoryTheory.Functor.isMorphismOfSites_of_points, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/Exactness.lean, line 135.
Stacks 0F4G. Let
u : C ⥤ Dbe a continuous functor of sites. Let{(q_i, v_i)}be a conservative family of points ofD. If each functoru_i = v_i ∘ udefines a point ofC, thenudefines a morphism of sitesf : D → C.
theorem isMorphismOfSites_of_points
(hP : P.IsConservativeFamilyOfPoints)
(Ψ : P.FullSubcategory → Point.{u} J)
(hΨ : ∀ Φ : P.FullSubcategory, (Ψ Φ).fiber = u ⋙ Φ.obj.fiber) :
u.IsMorphismOfSites J K
Sources
Section7.39 Criterion for existence of points#
Section 7.39 of the Stacks Project, Tag 00YN. 4 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 00YO, a lemma
Tag 00YO in the Stacks Project.
CategoryTheory.GrothendieckTopology.exists_refinement_of_ne, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/CriterionForExistenceOfPoints/RefinementStep.lean, line 520. The attribute's comment: “The inductive step of Deligne's criterion: a cofiltered system can be refined so as to keep two germs of a separated presheaf distinct while a given section of u'(W) becomes covered by a given finite covering of W.”. References: SGA 4 VI (9.3).
Stacks 00YO. Let
(C, J)be a site, letFbe a separated presheaf of sets onCand letp : N ⥤ Cbe a cofiltered system inC, with associated fibre functoru'(X) = colim_j Mor(p j, X)and stalk functorF ↦ F_{p'} = colim_j F(p j). Lets ≠ s'be two germs inF_{p'}, represented bya, a' : F(p j₀), let{g k : Y k ⟶ W}be a finite covering of the site and letf : p j₀ ⟶ Wrepresent a section ofu'(W).Then the system can be refined — there are a cofiltered system
q : M ⥤ C, a fully faithfule : N ⥤ Mand an isomorphismε : e ⋙ q ≅ pexhibitingpas the restriction ofq— in such a way that the two germs stay distinct inF_pand that the image offinu(W)lies in the image ofu(Y k)for one of the membersg k : Y k ⟶ Wof the covering.
public theorem exists_refinement_of_ne {C : Type u} [Category.{v} C] (J : GrothendieckTopology C)
{F : Cᵒᵖ ⥤ Type w} (hF : Presieve.IsSeparated J F) {N : Type u₁} [SmallCategory N]
[IsCofiltered N] (p : N ⥤ C) (j₀ : N) (a a' : F.obj (op (p.obj j₀)))
(haa' : ∀ (j : N) (φ : j ⟶ j₀), F.map (p.map φ).op a ≠ F.map (p.map φ).op a') {W : C}
{ι : Type t} [Finite ι] {Y : ι → C} (g : ∀ k, Y k ⟶ W) (hg : Sieve.ofArrows Y g ∈ J W)
[∀ (X : C) (h : X ⟶ W) (k : ι), HasPullback h (g k)] (f : p.obj j₀ ⟶ W) :
∃ (M : Type u₁) (_ : SmallCategory M) (_ : IsCofiltered M) (q : M ⥤ C) (e : N ⥤ M) (_ : e.Full)
(_ : e.Faithful) (ε : e ⋙ q ≅ p),
(∀ (i : M) (ψ : i ⟶ e.obj j₀),
F.map (q.map ψ ≫ ε.hom.app j₀).op a ≠ F.map (q.map ψ ≫ ε.hom.app j₀).op a') ∧
∃ (k : ι) (i : M) (ψ : i ⟶ e.obj j₀) (h : q.obj i ⟶ Y k),
h ≫ g k = q.map ψ ≫ ε.hom.app j₀ ≫ f
Tag 00YP, a lemma
Tag 00YP in the Stacks Project.
CategoryTheory.GrothendieckTopology.exists_refinement_forall_covering_of_ne, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/CriterionForExistenceOfPoints/UniformRefinement.lean, line 669. The attribute's comment: “The main step of Deligne's criterion: a cofiltered system can be refined so as to keep two germs of a separated presheaf distinct while every section of u' becomes covered by every finite covering of the site.”. References: SGA 4 VI (9.2); SGA 4 VI (9.4).
Stacks 00YP. Let
(C, J)be a site in which the members of a finite covering admit fibre products along arbitrary morphisms to its base (hpb), letFbe a separated presheaf of sets onCand letp : N ⥤ Cbe a cofiltered system inC, with associated fibre functoru'(X) = colim_j Mor(p j, X)and stalk functorF ↦ F_{p'} = colim_j F(p j). Lets ≠ s'be two germs inF_{p'}, represented bya, a' : F(p j₀).Then the system can be refined — there are a cofiltered system
q : M ⥤ C, a fully faithfule : N ⥤ Mand an isomorphismε : e ⋙ q ≅ pexhibitingpas the restriction ofq— in such a way that the two germs stay distinct inF_pand that, for every finite covering{g k : Y k ⟶ W}of the site and every sectionf : p j ⟶ Wofu'(W), the image offinu(W)lies in the image ofu(Y k)for one of the membersg kof the covering. Moreover the refined index category is no larger than the data it is assembled from: ifCisw'-small withw'-small hom types andNis essentiallyw'-small, then so isM, so the refinement can in turn be fed back into the construction of a point of the site and the lemma iterated.Unlike
CategoryTheory.GrothendieckTopology.exists_refinement_of_ne(Stacks 00YO), the covering and the section are not fixed in advance: one refinement works for all of them at once.
public theorem exists_refinement_forall_covering_of_ne {C : Type u} [Category.{v} C] [Small.{w'} C]
[LocallySmall.{w'} C] (J : GrothendieckTopology C) {F : Cᵒᵖ ⥤ Type w}
(hF : Presieve.IsSeparated J F)
(hpb :
∀ {W : C} {ι : Type t} [Finite ι] {Y : ι → C} (g : ∀ k, Y k ⟶ W),
Sieve.ofArrows Y g ∈ J W → ∀ (X : C) (h : X ⟶ W) (k : ι), HasPullback h (g k))
{N : Type u₁} [SmallCategory N] [IsCofiltered N] [EssentiallySmall.{w'} N] (p : N ⥤ C) (j₀ : N)
(a a' : F.obj (op (p.obj j₀)))
(haa' : ∀ (j : N) (φ : j ⟶ j₀), F.map (p.map φ).op a ≠ F.map (p.map φ).op a') :
∃ (M : Type (max u₁ u v)) (_ : SmallCategory M) (_ : IsCofiltered M) (_ :
EssentiallySmall.{w'} M) (q : M ⥤ C) (e : N ⥤ M) (_ : e.Full) (_ : e.Faithful) (ε :
e ⋙ q ≅ p),
(∀ (i : M) (ψ : i ⟶ e.obj j₀),
F.map (q.map ψ ≫ ε.hom.app j₀).op a ≠ F.map (q.map ψ ≫ ε.hom.app j₀).op a') ∧
∀ {W : C} {ι : Type t} [Finite ι] {Y : ι → C} (g : ∀ k, Y k ⟶ W),
Sieve.ofArrows Y g ∈ J W →
∀ (j : N) (f : p.obj j ⟶ W),
∃ (k : ι) (i : M) (ψ : i ⟶ e.obj j) (h : q.obj i ⟶ Y k),
h ≫ g k = q.map ψ ≫ ε.hom.app j ≫ f
Tag 00YQ, a proposition
Tag 00YQ in the Stacks Project.
CategoryTheory.GrothendieckTopology.hasEnoughPoints_of_exists_finite_refinement, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/CriterionForExistenceOfPoints/DeligneCriterion.lean, line 734. The attribute's comment: “Deligne's criterion: a site with fibre products in which every covering has a finite refinement has enough points.”. References: SGA 4 VI (9.0); SGA 4 VI (9.5), “existence of points”; SGA 2 XIV (1.9), “special case”.
Stacks 00YQ (Deligne's criterion for the existence of enough points). Let
(C, J)be a site in which fibre products exist and in which every covering sieveSof an objectXadmits a refinement by a finite covering — a finite familyg k : Y k ⟶ Xof morphisms ofSwhich is again a covering ofX. Then the site has enough points: there is a small family of points of(C, J)whose fibre functors jointly reflect isomorphisms of sheaves of sets.The source asks for all finite limits in
C; only the fibre products of the members of a finite covering along an arbitrary morphism are used, whenceHasPullbacks C.
public theorem hasEnoughPoints_of_exists_finite_refinement {C : Type u} [Category.{v} C]
[HasPullbacks C] [Small.{w} C] [LocallySmall.{w} C] (J : GrothendieckTopology C)
[HasSheafify J (Type w)]
(h :
∀ ⦃X : C⦄ (S : Sieve X),
S ∈ J X →
∃ (ι : Type) (_ : Finite ι) (Y : ι → C) (g : ∀ k, Y k ⟶ X),
Sieve.ofArrows Y g ≤ S ∧ Sieve.ofArrows Y g ∈ J X) :
HasEnoughPoints.{w} J
Tag 0DW0, a lemma
Tag 0DW0 in the Stacks Project.
CategoryTheory.GrothendieckTopology.hasEnoughPoints_of_coversTop_of_exists_finite_refinement, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Point/CriterionForExistenceOfPoints/DeligneCriterion.lean, line 896. The attribute's comment: “A site covered by objects whose localizations satisfy Deligne's criterion has enough points.”. References: SGA 2 XIV (1.9), “special case”; SGA 4 VI (4.12), “more general”; SGA 4 VI (9.0).
Stacks 0DW0. Let
(C, J)be a site and letU : I → Cbe a family of objects, indexed by aw-small type, which covers the final object of the topos of sheaves onC: for every objectWofC, the sieve of morphismsZ ⟶ Wwhose sourceZadmits a morphism to someU iis a covering sieve. Assume that each localized siteC/U isatisfies the hypotheses of Deligne's criterion Stacks 00YQ: fibre products exist inC/U i, and every covering sieveSof an objectXofC/U iadmits a refinement by a finite covering, i.e. contains a finite familyg k : Y k ⟶ Xwhich is again a covering ofX. Then(C, J)has enough points.The finiteness condition is needed only on the localizations, so a site none of whose coverings admits a finite refinement can still have enough points, as soon as it is covered by objects whose localizations are coherent in Deligne's sense.
public theorem hasEnoughPoints_of_coversTop_of_exists_finite_refinement {C : Type u}
[Category.{v} C] [LocallySmall.{w} C] {J : GrothendieckTopology C} {I : Type*} [Small.{w} I]
{U : I → C} [∀ i, HasPullbacks (Over (U i))] [∀ i, Small.{w} (Over (U i))] (hU : J.CoversTop U)
(h :
∀ (i : I) ⦃X : Over (U i)⦄ (S : Sieve X),
S ∈ (J.over (U i)) X →
∃ (ι : Type) (_ : Finite ι) (Y : ι → Over (U i)) (g : ∀ k, Y k ⟶ X),
Sieve.ofArrows Y g ≤ S ∧ Sieve.ofArrows Y g ∈ (J.over (U i)) X) :
HasEnoughPoints.{w} J
Sources
Section7.40 Weakly contractible objects#
Section 7.40 of the Stacks Project, Tag 090J. 2 tags here are carried by 4 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 090K, a lemma
Tag 090K in the Stacks Project.
hasRightInverse_iff_isLocallySurjective_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/WeaklyContractible/Objects.lean, line 241.
Let
Cbe a site with Grothendieck topologyJ, and letUbe an object ofC. The following are equivalent.
For every covering
{U_i → U}_{i ∈ I}ofU, the sheafified covering mapπ^# : ∐ h_{U_i}^# ⟶ h_U^#admits a right inverse (a section)σ, i.e.σ ≫ π^# = 𝟙.For every surjection (locally surjective morphism) of sheaves of sets
φ : F ⟶ G, the induced map on sections overU,φ_U : F(U) → G(U), is surjective.
theorem hasRightInverse_iff_isLocallySurjective_surjective :
(∀ (I : Type v) (Ui : I → C) (f : ∀ i, Ui i ⟶ U),
(Sieve.ofArrows Ui f) ∈ J U → Stacks.WeaklyContractible.HasRightInverse J Ui f) ↔
(∀ (F G : Sheaf J (Type v)) (φ : F ⟶ G), Sheaf.IsLocallySurjective φ →
Function.Surjective ((sheafToPresheaf J (Type v)).map φ |>.app (op U)))
Tag 090L, a definition
Tag 090L in the Stacks Project.
CategoryTheory.GrothendieckTopology.IsWeaklyContractible, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/WeaklyContractible.lean, line 52. The attribute's comment: “(1)”.
An object
Uof a siteCis weakly contractible if every surjection of sheaves of sets onCis surjective on sections overU.
def IsWeaklyContractible (U : C) : Prop
CategoryTheory.GrothendieckTopology.HasEnoughObjects, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/WeaklyContractible.lean, line 68. The attribute's comment: “(3)”.
A site
Chas enoughPobjects, for a propertyPof objects ofC, if every objectUofChas a covering{U_i → U}withP (U_i)for alli.
def HasEnoughObjects (P : ObjectProperty C) : Prop
CategoryTheory.GrothendieckTopology.HasEnoughWeaklyContractibleObjects, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/WeaklyContractible.lean, line 75. The attribute's comment: “(2)”.
A site
Chas enough weakly contractible objects if every object has a covering by weakly contractible objects, i.e. if it has enoughIsWeaklyContractibleobjects.
def HasEnoughWeaklyContractibleObjects : Prop
Sources
Section7.41 Exactness properties of pushforward#
Section 7.41 of the Stacks Project, Tag 04D5. 3 tags here are carried by 3 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04D6, a lemma
Tag 04D6 in the Stacks Project.
exactness_properties_bundled, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/ExactnessOfMorphism.lean, line 88. References: SGA 4 I (5.6), “iv) <=> v)”; SGA 4 I (6.4), “epic counit ⇒ ψ faithful”.
Stacks Tag 04D6 (abstract bundled form for an adjunction
L ⊣ R, playing the role of a morphism of topoif⁻¹ ⊣ f_*). Five of the eight sub-implications of the Stacks lemma in their topos-free formulation:
- (a) (2) ⇒ (1):
Rfully faithful impliesRfaithful;- (b) (3) ⇒ (1): each component of the counit
L∘R ⟶ idbeing an epimorphism impliesRis faithful;- (d) (9) ⇒ (3): if
Rreflects epimorphisms, then each component of the counit is an epimorphism (since the counit-image underRis split epi, hence epi);- (g) (9) ⇒ (8), (10): a faithful functor reflects monomorphisms (8) and bijections (10) automatically; we record (8) here, and (10) follows by combining (8) with (9);
- (h) (7) ⇒ (2): counit pointwise iso implies
Rfully faithful;- (h) (2) ⇒ (7):
Rfully faithful implies the counit is pointwise iso.All six are immediate consequences of existing Mathlib lemmas:
Adjunction.faithful_R_of_epi_counit_app,Adjunction.counit_epi_of_R_faithful,Adjunction.fullyFaithfulROfIsIsoCounit,Adjunction.counit_isIso_of_R_fully_faithful,Functor.reflectsMonomorphisms_of_faithful.
theorem exactness_properties_bundled :
(R.FullyFaithful → R.Faithful) ∧
((∀ X, Epi (h.counit.app X)) → R.Faithful) ∧
(R.ReflectsEpimorphisms → ∀ X, Epi (h.counit.app X)) ∧
((∀ X, IsIso (h.counit.app X)) → Nonempty R.FullyFaithful) ∧
(R.FullyFaithful → ∀ X, IsIso (h.counit.app X))
Tag 04D7, a lemma
Tag 04D7 in the Stacks Project.
preservesEpi, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/PreservesEpi.lean, line 67.
Stacks 04D7.
Let
u : C ⥤ Dbe a continuous functor between sites(C, J)and(D, K). Assumeusatisfies the section-lifting hypothesis of Stacks 04D7 (Hypothesis u J K): for everyK-locally surjective morphism of type-valued sheaves on(D, K)and every section onu(U), sections lift locally on aJ-cover ofU. Then the pushforward functoru.sheafPushforwardContinuous (Type max u₂ v₂) J K : Sheaf K _ ⥤ Sheaf J _preserves epimorphisms, i.e. transforms surjective maps of sheaves into surjective maps of sheaves.
theorem preservesEpi
{C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D]
(u : C ⥤ D) (J : GrothendieckTopology C) (K : GrothendieckTopology D)
[u.IsContinuous J K]
(hyp : Hypothesis u J K) :
(u.sheafPushforwardContinuous (Type max u₂ v₂) J K).PreservesEpimorphisms
Tag 04D9, a lemma
Tag 04D9 in the Stacks Project.
val_app_comp_eq_on_image_arrow, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Topos/PushforwardEquality.lean, line 38.
If
u_*(f) = u_*(g), thenfandgagree after restriction along any arrowu.obj U ⟶ V, by naturality applied to acongrArgon objects of the formu.obj U.
lemma val_app_comp_eq_on_image_arrow
[u.IsContinuous J K] {X Y : Sheaf K A} (f g : X ⟶ Y)
(h : (u.sheafPushforwardContinuous A J K).map f =
(u.sheafPushforwardContinuous A J K).map g)
{V : D} {U : C} (p : u.obj U ⟶ V) :
f.hom.app (op V) ≫ Y.obj.map p.op = g.hom.app (op V) ≫ Y.obj.map p.op
Sources
Section7.42 Almost cocontinuous functors#
Section 7.42 of the Stacks Project, Tag 04B4. 6 tags here are carried by 7 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 04B5, a definition
Tag 04B5 in the Stacks Project.
SheafTheoreticallyEmpty, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/SheafTheoreticallyEmpty.lean, line 28.
Stacks 04B5. An object
Uof a site is sheaf theoretically empty if the sheafification of the canonical map∅ ⟶ h_Ufrom the initial presheaf to the presheaf represented byUis an isomorphism of sheaves.
def SheafTheoreticallyEmpty [HasWeakSheafify J (Type v)] (U : C) : Prop
Tag 04B6, a lemma
Tag 04B6 in the Stacks Project.
StacksSheafTheoreticallyEmpty.tfae_sheafTheoreticallyEmpty, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/EmptyPresheaf.lean, line 159.
Stacks 04B6. For an object
Uof a site(C, J)the following are equivalent: (1)Uis sheaf theoretically empty, i.e.∅^# ⟶ h_U^#is an isomorphism of sheaves; (2) every sheaf of sets has exactly one section overU; (3)∅^#(U)has exactly one element; (4)∅^#(U)is nonempty; (5) the empty sieve is a covering sieve ofU.
theorem tfae_sheafTheoreticallyEmpty [HasWeakSheafify J (Type u)] (U : C) :
TFAE [IsIso ((presheafToSheaf J (Type u)).map (emptyPresheafTo (yoneda.obj U))),
∀ F : Sheaf J (Type u), Subsingleton (F.obj.obj (op U)) ∧ Nonempty (F.obj.obj (op U)),
Subsingleton ((sheafify J (emptyPresheaf (C := C))).obj (op U)) ∧
Nonempty ((sheafify J (emptyPresheaf (C := C))).obj (op U)),
Nonempty ((sheafify J (emptyPresheaf (C := C))).obj (op U)),
(⊥ : Sieve U) ∈ J U]
StacksSheafTheoreticallyEmpty.isIso_map_emptyPresheafTo_of_hom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/EmptyPresheaf.lean, line 177.
Stacks 04B6, final assertion. If
Uis sheaf theoretically empty, then so isU'for every morphismU' ⟶ UofC.
theorem isIso_map_emptyPresheafTo_of_hom [HasWeakSheafify J (Type u)] {U U' : C} (f : U' ⟶ U)
(h : IsIso ((presheafToSheaf J (Type u)).map (emptyPresheafTo (yoneda.obj U)))) :
IsIso ((presheafToSheaf J (Type u)).map (emptyPresheafTo (yoneda.obj U')))
Tag 04B7, a definition
Tag 04B7 in the Stacks Project.
IsAlmostCocontinuous, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/AlmostCocontinuousDefs.lean, line 35.
Stacks 04B7. A functor
u : C ⥤ Dbetween sites(C, J)and(D, K)is almost cocontinuous if for every objectUofCand every covering sieveSofu Uthere is a covering sieveTofUsuch that each arrowf : V ⟶ UinTeither hasu Vsheaf theoretically empty, or hasu finS.
def IsAlmostCocontinuous (u : C ⥤ D) (J : GrothendieckTopology C)
(K : GrothendieckTopology D) : Prop
Tag 04B8, a lemma
Tag 04B8 in the Stacks Project.
isIso_sheafificationAdjunction_homEquiv_symm, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/AlmostCocontinuousCore.lean, line 76.
Formal core of Stacks 04B8. Suppose a sheaf
Etogether with a presheaf morphismη₀ : F ⟶ (sheafToPresheaf J _).obj Esatisfies the universal property of the sheafification ofF: every presheaf morphism fromFinto the underlying presheaf of any sheafHlifts uniquely throughη₀. Then the canonical morphism(presheafToSheaf J).obj F ⟶ Eobtained fromη₀via the sheafification adjunction'shomEquivis an isomorphism.The Stacks 04B8 conclusion
(u^p G)^# ≅ u^p (G^#)reduces to this purely formal statement once one verifies, using continuity and almost cocontinuity ofutogether with the "singleton on empty" hypothesis onG, thatu.sheafPushforwardContinuousapplied toG^#provides a solution to the universal property of the sheafification ofu^p G. The Čech-cohomology argument establishing that universal property is the Stacks-side content of 04B8 and is not formalized here.
theorem isIso_sheafificationAdjunction_homEquiv_symm
(J : GrothendieckTopology C)
[HasWeakSheafify J (Type v)]
(F : Cᵒᵖ ⥤ Type v)
(E : Sheaf J (Type v))
(η₀ : F ⟶ (sheafToPresheaf J (Type v)).obj E)
(h_exists : ∀ (H : Sheaf J (Type v))
(α : F ⟶ (sheafToPresheaf J (Type v)).obj H),
∃ β : E ⟶ H, η₀ ≫ (sheafToPresheaf J (Type v)).map β = α)
(h_unique : ∀ (H : Sheaf J (Type v)) (β₁ β₂ : E ⟶ H),
η₀ ≫ (sheafToPresheaf J (Type v)).map β₁ =
η₀ ≫ (sheafToPresheaf J (Type v)).map β₂ → β₁ = β₂) :
IsIso (((sheafificationAdjunction J (Type v)).homEquiv _ _).symm η₀)
Tag 04B9, a lemma
Tag 04B9 in the Stacks Project.
CategoryTheory.Functor.preservesColimitsOfShape_sheafPushforwardContinuous_of_isAlmostCocontinuous, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/AlmostCocontinuousFunctors.lean, line 418. The attribute's comment: “For u continuous and almost cocontinuous, u^s = u^p : Sh(D) → Sh(C) commutes with pushouts and coequalizers, and more generally with finite connected colimits.”.
Stacks 04B9. Let
(C, J)and(D, K)be sites and letu : C ⥤ Dbe continuous and almost cocontinuous, and assume sheafification ofType w-valued presheaves on(D, K)inverts exactly the locally bijective morphisms. Thenu^s = u^p : Sh(D) ⥤ Sh(C), restriction of sheaves of sets alongu.op, preserves colimits of every connected shapeIfor whichI-shaped colimits of sets exist — in particular pushouts (WalkingSpan) and coequalizers (WalkingParallelPair), and more generally every finite connected shape.
public theorem preservesColimitsOfShape_sheafPushforwardContinuous_of_isAlmostCocontinuous
{C : Type u₁} [Category.{v₁} C] {D : Type u₂} [Category.{v₂} D] (u : C ⥤ D)
(J : GrothendieckTopology C) (K : GrothendieckTopology D) [u.IsContinuous J K]
(hu : IsAlmostCocontinuous u J K) [HasWeakSheafify J (Type w)] [HasWeakSheafify K (Type w)]
[K.WEqualsLocallyBijective (Type w)] (I : Type t) [Category.{t'} I] [IsConnected I]
[HasColimitsOfShape I (Type w)] :
PreservesColimitsOfShape I (u.sheafPushforwardContinuous (Type w) J K)
Tag 04BA, a lemma
Tag 04BA in the Stacks Project.
CategoryTheory.Functor.IsMorphismOfSites.preservesColimitsOfShape_pushforward_morphismOfTopoi_of_isAlmostCocontinuous, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Cocontinuous/AlmostCocontinuousFunctors.lean, line 535. The attribute's comment: “For a morphism of sites f : D → C whose continuous functor u : C → D is almost cocontinuous, f_* commutes with pushouts and coequalizers, and more generally with finite connected colimits.”.
Stacks 04BA. Let
f : D → Cbe a morphism of sites (Stacks 00X1) associated to the continuous functoru : C ⥤ D, so thatf_* : Sh(D) ⥤ Sh(C)is the pushforward of the morphism of topoi attached tof(Stacks 00XC), namely restriction of sheaves of sets alongu.op. Ifuis almost cocontinuous (Stacks 04B7), thenf_*preserves colimits of every connected shape whose colimits exist — in particular pushouts and coequalizers, which are connected shapes.
public theorem preservesColimitsOfShape_pushforward_morphismOfTopoi_of_isAlmostCocontinuous
{C : Type w} [SmallCategory C] {D : Type w} [SmallCategory D] {J : GrothendieckTopology C}
{K : GrothendieckTopology D} {u : C ⥤ D} (hf : u.IsMorphismOfSites J K)
(hu : IsAlmostCocontinuous u J K) (I : Type t) [Category.{t'} I] [IsConnected I]
[HasColimitsOfShape I (Type w)] :
PreservesColimitsOfShape I hf.morphismOfTopoi.pushforward
Sources
Section7.43 Subtopoi#
Section 7.43 of the Stacks Project, Tag 08LT. 8 tags here are carried by 15 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 08LU, a definition
Tag 08LU in the Stacks Project.
MorphismOfTopoi.IsEmbedding, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Embedding.lean, line 37. References: SGA 4 IV (9.1.1), “a)”; SGA 4 IV (9.1), “embedding def”.
Stacks Project, Definition 7.43.1 (tag 08LU).
A morphism of topoi
f : E → Fis an embedding if its pushforwardf_*is fully faithful.
def IsEmbedding (f : MorphismOfTopoi E F) : Prop
Tag 08LV, a definition
Tag 08LV in the Stacks Project.
IsSubtopos, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Defs.lean, line 50. References: SGA 4 IV (9.1), “subtopos def”; SGA 4 IV (9.1.1), “b)”.
Stacks Project, Definition 7.43.2 (tag 08LV).
A strictly full subcategory
E ⊆ Sh(C, J), given by the propertyPof its objects, is a subtopos if there is an embedding of topoif : Sh(D, K) → Sh(C, J), for some site(D, K), whose pushforward hasEas its essential image.Since a subcategory of
Sh(C, J)cut out by a property of objects is automatically strictly full and closed under isomorphisms, no further condition onPis imposed; the equalityf_*.essImage = Palready forces it.The site
(D, K)is quantified over the same universes as(C, J). This is the case that occurs in practice — in Stacks 08LY, for instance,DisCitself carrying a finer topology — and it keeps the universe parameters ofIsSubtoposdetermined by its arguments.
def IsSubtopos (J : GrothendieckTopology C) (P : ObjectProperty (Sheaf J (Type w))) : Prop
Tag 08LW, a lemma
Tag 08LW in the Stacks Project.
CategoryTheory.Sites.Subtopos.MorphismOfTopoi.isEmbedding_overLocalization_iff_isSubterminal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Subtopoi.lean, line 183. The attribute's comment: “The localization j_F : E/F ⟶ E is an embedding of topoi, i.e. E/F is a subtopos of E, if and only if F is a subobject of the final object.”. References: SGA 4 IV (9.2.1), “(9.2.2) is an embedding”; SGA 4 VI (4.1), “open inclusion j”.
Stacks 08LW. Let
Ebe a topos andFan object ofE(in the source, a sheaf on a siteC), and letj_F : E/F ⟶ Ebe the localization morphism of Stacks 04GZ, given by a right adjointpofj_F⁻¹ = toOver F. Thenj_Fis an embedding of topoi — so thatE/Fis the subtoposj_{F,*}(E/F)ofE— if and only ifFis a subobject of the final object ofE.
public theorem MorphismOfTopoi.isEmbedding_overLocalization_iff_isSubterminal {E : Type u}
[Category.{v} E] [CartesianMonoidalCategory E] (F : E) {p : Over F ⥤ E}
(adj : toOver F ⊣ p) :
(MorphismOfTopoi.overLocalization F adj).IsEmbedding ↔ IsSubterminal F
Tag 08LX, a definition
Tag 08LX in the Stacks Project.
OpenSubtopos.IsOpenSubtopos, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Open.lean, line 97.
Open subtopos.
A strictly full subcategory
E ⊂ Sh(C), modelled as anObjectProperty (Sheaf J (Type w))closed under isomorphisms, is an open subtopos ofSh(C)if there exists a subsheafFof the terminal sheaf such thatEis the subtoposSh(C)/F. We capture "Eis the subtoposSh(C)/F" by an equivalence of categoriesP.FullSubcategory ≌ Over Fcompatible with the inclusionP.ιintoSh(C)and the canonical forgetful functorOver.forget F.
def IsOpenSubtopos [Limits.HasTerminal (Sheaf J (Type w))]
(P : ObjectProperty (Sheaf J (Type w))) : Prop
Tag 08LY, a lemma
Tag 08LY in the Stacks Project.
CategoryTheory.Sites.Subtopos.isSubtopos_closedComplement, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Subtopoi.lean, line 585. The attribute's comment: “The full subcategory of sheaves G with F ⨯ G ⟶ F an isomorphism is a subtopos of Sh(C). Stated for an arbitrary sheaf F, the source's hypothesis that F be a subsheaf of the final object being unused in its proof.”. References: SGA 4 IV (9.3.1), “for any topos and open U”; SGA 4 IV (9.3.4), “partial”; SGA 4 VI (4.1), “partial”.
Stacks Project, Lemma 7.43.5 (tag 08LY). Let
(C, J)be a site and letFbe a sheaf of sets on it. The strictly full subcategoryclosedComplement FofSh(C, J), consisting of the sheavesGfor which the projectionF ⨯ G ⟶ Fis an isomorphism, is a subtopos ofSh(C, J): it is the essential image of the pushforward of an embedding of topoi.The source assumes
Fto be a subsheaf of the final object, in which case this closed subtopos is complementary to the open subtoposSh(C, J)/Fof Stacks 08LW; the hypothesis is not needed, asclosedComplement Fdepends onFonly through the objects on whichFhas a section.
public theorem isSubtopos_closedComplement {C : Type u} [Category.{v} C]
{J : GrothendieckTopology C} (F : Sheaf J (Type (max u v))) :
IsSubtopos J (closedComplement F)
Tag 08LZ, a definition
Tag 08LZ in the Stacks Project.
IsClosedSubtopos, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Closed.lean, line 46. References: SGA 4 IV (9.3.1), “closed subtopos defn”; SGA 4 IV (9.3.5), “closed subtopos”.
Stacks Project, Definition 7.43.6 (tag 08LZ).
A strictly full subcategory
E ⊆ Sh(C, J), given by the propertyPof its objects, is a closed subtopos if there is a subsheafFof the final object ofSh(C, J)— that is, a sheafFwhose map to the terminal object is a monomorphism — such thatEis the subtoposclosedComplement Fdescribed in Stacks 08LY.
def IsClosedSubtopos (J : GrothendieckTopology C) (P : ObjectProperty (Sheaf J (Type w))) :
Prop
Tag 08M0, a definition
Tag 08M0 in the Stacks Project.
MorphismOfTopoi.IsOpenImmersion, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Immersions.lean, line 36. References: SGA 4 IV (9.2.1), “open embedding def”.
Stacks Project, Definition 7.43.7(1) (tag 08M0).
A morphism of topoi
f : Sh(D, K) → Sh(C, J)is an open immersion if it is an embedding and the essential image off_*is an open subtopos ofSh(C, J).
def IsOpenImmersion (f : MorphismOfTopoi (Sheaf K (Type w)) (Sheaf J (Type w))) : Prop
MorphismOfTopoi.IsClosedImmersion, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/Immersions.lean, line 44. References: SGA 4 IV (9.3.5), “closed embedding”.
Stacks Project, Definition 7.43.7(2) (tag 08M0).
A morphism of topoi
f : Sh(D, K) → Sh(C, J)is a closed immersion if it is an embedding and the essential image off_*is a closed subtopos ofSh(C, J).
def IsClosedImmersion (f : MorphismOfTopoi (Sheaf K (Type w)) (Sheaf J (Type w))) : Prop
Tag 08M1, a lemma
Tag 08M1 in the Stacks Project.
MorphismOfTopoi.IsClosedImmersion.fullyFaithful, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 174.
The pushforward of a closed immersion of topoi is fully faithful. This is the first assertion of Stacks 08M1; it already holds for an embedding.
noncomputable def fullyFaithful (hi : i.IsClosedImmersion) : i.pushforward.FullyFaithful
MorphismOfTopoi.IsClosedImmersion.preservesColimitsOfShape_walkingParallelPair, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 197.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi commutes with coequalizers.
lemma preservesColimitsOfShape_walkingParallelPair (hi : i.IsClosedImmersion) :
PreservesColimitsOfShape WalkingParallelPair i.pushforward
MorphismOfTopoi.IsClosedImmersion.preservesColimitsOfShape_walkingSpan, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 204.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi commutes with pushouts.
lemma preservesColimitsOfShape_walkingSpan (hi : i.IsClosedImmersion) :
PreservesColimitsOfShape WalkingSpan i.pushforward
MorphismOfTopoi.IsClosedImmersion.preservesEpimorphisms, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 211.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi transforms surjections into surjections.
lemma preservesEpimorphisms (hi : i.IsClosedImmersion) :
i.pushforward.PreservesEpimorphisms
MorphismOfTopoi.IsClosedImmersion.reflectsMonomorphisms, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 221.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi reflects injections.
lemma reflectsMonomorphisms (hi : i.IsClosedImmersion) :
i.pushforward.ReflectsMonomorphisms
MorphismOfTopoi.IsClosedImmersion.reflectsEpimorphisms, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 229.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi reflects surjections.
lemma reflectsEpimorphisms (hi : i.IsClosedImmersion) :
i.pushforward.ReflectsEpimorphisms
MorphismOfTopoi.IsClosedImmersion.reflectsIsomorphisms, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Subtopos/ClosedImmersion.lean, line 237.
Stacks Project, Lemma 7.43.8 (tag 08M1). The pushforward of a closed immersion of topoi reflects bijections.
lemma reflectsIsomorphisms (hi : i.IsClosedImmersion) :
i.pushforward.ReflectsIsomorphisms
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.