8 Stacks

Chapter 8 of the Stacks Project, Stacks, Tag 0266: the 12 sections of its 13 with a tag that a declaration carries, one article each, in the Stacks Project's order. Their 76 tags are carried by 128 declarations of the repository (all in StacksFrontier) and 15 registered declarations.

Section8.2 Presheaves of morphisms associated to fibred categories#

Section 8.2 of the Stacks Project, Tag 02Z9. 5 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 4 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 026A, a lemma

Tag 026A in the Stacks Project.

CategoryTheory.Functor.morRestrict_id, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/MorPresheaf.lean, line 131. The attribute's comment: โ€œrestriction along the identityโ€.

Restricting a section of Mor(x, y) along an identity of ๐’ฎ/U leaves it unchanged.

lemma morRestrict_id (x y : p.Fiber U) (g : Over U)
    (m : pullbackFiber p x g.hom โŸถ pullbackFiber p y g.hom) :
    morRestrict p x y (๐Ÿ™ g) m = m

CategoryTheory.Functor.morRestrict_comp, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/MorPresheaf.lean, line 139. The attribute's comment: โ€œcompatibility with composition: ฯ†|_{Vโ€ณ} = (ฯ†|_{Vโ€ฒ})|_{Vโ€ณ}โ€.

Restricting a section of Mor(x, y) along a composite is restricting along the two factors in turn.

lemma morRestrict_comp (x y : p.Fiber U) {gโ‚ gโ‚‚ gโ‚ƒ : Over U} (hโ‚ : gโ‚ โŸถ gโ‚‚) (hโ‚‚ : gโ‚‚ โŸถ gโ‚ƒ)
    (m : pullbackFiber p x gโ‚ƒ.hom โŸถ pullbackFiber p y gโ‚ƒ.hom) :
    morRestrict p x y (hโ‚ โ‰ซ hโ‚‚) m = morRestrict p x y hโ‚ (morRestrict p x y hโ‚‚ m)
Tag 02ZB, a definition

Tag 02ZB in the Stacks Project.

CategoryTheory.Functor.morPresheaf, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/MorPresheaf.lean, line 150.

The presheaf Mor(x, y) on ๐’ฎ/U of a fibred category p: its sections over f : V โŸถ U are the morphisms f^* x โŸถ f^* y of the fibre over V, and its restriction maps are CategoryTheory.Functor.morRestrict.

noncomputable def morPresheaf (x y : p.Fiber U) : (Over U)แต’แต– โฅค Type vโ‚‚

CategoryTheory.Functor.isomSubpresheaf, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/IsomPresheaf.lean, line 120. The attribute's comment: โ€œThe subpresheaf Isom(x, y) of Mor(x, y); the presheaf Mor(x, y) itself is CategoryTheory.Functor.morPresheaf.โ€.

Stacks 02ZB, the subpresheaf Isom(x, y) of Mor(x, y): over f : V โŸถ U its sections are the morphisms f^* x โŸถ f^* y of the fibre over V that are isomorphisms. This is a subpresheaf because restriction preserves isomorphisms, CategoryTheory.Functor.isIso_morRestrict.

noncomputable def isomSubpresheaf (x y : p.Fiber U) : Subfunctor (morPresheaf p x y)
Tag 042V, a lemma

Tag 042V in the Stacks Project.

CategoryTheory.Functor.IsFibredOneMorphism.morPresheafMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoFibreProductMorPresheafMap.lean, line 380.

The map of presheaves Mor(x, y) โŸถ Mor(F x, F y) induced by a 1-morphism of fibred categories over ๐’ž: over g it applies F to a section and conjugates by the comparison isomorphisms IsFibredOneMorphism.mapPullbackFiberIso.

noncomputable def morPresheafMap (hF : IsFibredOneMorphism p rโ‚€ Fโ‚€) {U : ๐’ž} (a b : p.Fiber U) :
    morPresheaf p a b โŸถ morPresheaf rโ‚€ ((fiberFunctorOfCompEq hF.comp_eq U).obj a)
      ((fiberFunctorOfCompEq hF.comp_eq U).obj b)
Tag 02ZA, a remark

Tag 02ZA in the Stacks Project.

Declarations registered for the tag:

Tag 04SI, a lemma

Tag 04SI in the Stacks Project.

CategoryTheory.Functor.isFiberedInSetoids_and_isoClassPresheaf_iso_isomPresheaf, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/IsomPresheafTwoFibreProduct.lean, line 582.

Stacks 04SI. Let ๐’ž be a category, let p : ๐’ฎ โฅค ๐’ž be a fibred category, let U be an object of ๐’ž and let x, y be objects of the fibre category ๐’ฎ_U. Denote x, y : ๐’ž/U โฅค ๐’ฎ also the corresponding 1-morphisms (a : V โŸถ U) โ†ฆ a^* x (Stacks 004B). Then

  1. the 2-fibre product ๐’ฎ ร—_{๐’ฎ ร— ๐’ฎ, (x, y)} ๐’ž/U, whose objects over a : V โŸถ U are the triples (z, ฮฑ : z โ‰… a^* x, ฮฒ : z โ‰… a^* y) with z an object and ฮฑ, ฮฒ isomorphisms of ๐’ฎ_V, is fibred in setoids over ๐’ž/U, and
  2. Isom(x, y) is the presheaf of sets corresponding to that category fibred in setoids (Stacks 04SC), namely its presheaf of isomorphism classes of objects of the fibres, the identification sending the class of (z, ฮฑ, ฮฒ) to ฮฒ โˆ˜ ฮฑโปยน.

The second part is an isomorphism of presheaves, hence data: it is CategoryTheory.Functor.IsomPresheafTwoFibreProduct.presheafIso, pinned by the requirement that it send the class of (z, ฮฑ, ฮฒ) to ฮฒ โˆ˜ ฮฑโปยน, which determines it, every class being the class of such a triple.

noncomputable def isFiberedInSetoids_and_isoClassPresheaf_iso_isomPresheaf
    (p : ๐’ฎ โฅค ๐’ž) [p.IsFibered] {U : ๐’ž} (x y : p.Fiber U) :
    PProd (IsomPresheafTwoFibreProduct.proj p x y).IsFiberedInSetoids
      { e : (IsomPresheafTwoFibreProduct.proj p x y).isoClassPresheaf โ‰…
          p.isomPresheaf x y โ‹™ uliftFunctor.{max uโ‚ vโ‚ uโ‚‚, vโ‚‚} //
        โˆ€ P : IsomPresheafTwoFibreProduct.Tot p x y,
          (e.hom.app (op P.y) (isoClassMk _ โŸจP, rflโŸฉ)).down.1.1 = P.iso.inv.1 โ‰ซ P.iso.hom.2 }
Sources

Section8.3 Descent data in fibred categories#

Section 8.3 of the Stacks Project, Tag 02ZC. 7 tags here are carried by 13 declarations of the repository (all in StacksFrontier) and 11 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 026B, a definition

Tag 026B in the Stacks Project.

CategoryTheory.Functor.SieveDescentDatum, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/SieveDescentDatum.lean, line 57. The attribute's comment: โ€œ(1), sieve-indexed, with no chosen fibre products U i ร—_U U jโ€. References: SGA 3 IV (2.1), โ€œdescent datumโ€; SGA 4ยฝ Arcata (1.4.4).

A descent datum relative to a sieve R on U: an object of the fibre over V for each arrow f : V โŸถ U of R, and for each pair of arrows of R and each pair of morphisms ฮต, ฮต' into their sources agreeing over U, an isomorphism between the chosen pullbacks along ฮต and ฮต' of the two attached objects, compatible with composition and with base change.

structure SieveDescentDatum (p : ๐’ณ โฅค ๐’ฎ) [p.IsFibered] {U : ๐’ฎ} (R : Sieve U)

CategoryTheory.Functor.FamilyDescentDatum, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 81. The attribute's comment: โ€œThe category DD(๐’ฐ) for a fibred category: its objects (1), its morphisms (2) and its category structure (3). Indexed by an arbitrary object mapping to two members of the family in place of the chosen fibre products U i ร—_U U i', which the two presentations agree over whenever those exist, by CategoryTheory.Pseudofunctor.DescentData'.descentDataEquivalence.โ€. References: SGA 3 IV (2.1), โ€œdescent datumโ€; SGA 1 VIII (7.8), โ€œmore generalโ€.

The category of descent data relative to a family of morphisms with fixed target ๐’ฐ = {U i โŸถ U} for a fibred category p : ๐’ณ โฅค ๐’ฎ: an object of the fibre ๐’ณ_{U i} for every i, together with a gluing isomorphism between the two pullbacks of these objects to any object Y mapping to U i and to U i' compatibly over U, subject to the cocycle condition and to compatibility with further base change.

abbrev FamilyDescentDatum (p : ๐’ณ โฅค ๐’ฎ) [p.IsFibered] {U : ๐’ฎ} (๐’ฐ : PreZeroHypercover.{w} U)

Declarations registered for the tag:

Tag 026C, remarks

Tag 026C in the Stacks Project.

CategoryTheory.Functor.DescentDatum.diagonalPullback_eq_id, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Stack.lean, line 370. The attribute's comment: โ€œdiagonal identityโ€.

Let D be a descent datum for p fibred in groupoids, and ฮ” : V i โŸถ Vijk i i i the diagonal. A fibre automorphism e of x i which is the pullback along ฮ” of each of the three gluing isomorphisms of the triple (i, i, i) is the identity.

theorem DescentDatum.diagonalPullback_eq_id
    (D : DescentDatum p V f Vij prโ‚ prโ‚‚ hVij Vijk sโ‚โ‚‚ sโ‚‚โ‚ƒ hVijk qโ‚ qโ‚‚ qโ‚ƒ hqโ‚ hqโ‚‚ hqโ‚ƒ)
    (hp : p.IsFiberedInGroupoids) (i : I) {ฮ” : V i โŸถ Vijk i i i}
    {hฮ”โ‚ : ๐Ÿ™ (V i) = ฮ” โ‰ซ qโ‚ i i i} {hฮ”โ‚‚ : ๐Ÿ™ (V i) = ฮ” โ‰ซ qโ‚‚ i i i}
    {hฮ”โ‚ƒ : ๐Ÿ™ (V i) = ฮ” โ‰ซ qโ‚ƒ i i i}
    {e : D.x i โŸถ D.x i}
    (he : FibreHom p (D.x i) (D.x i) (D.hx i) (D.hx i) e)
    (heij : IsRestrictionOf p ฮ” hฮ”โ‚ hฮ”โ‚‚ (D.wi i i i) (D.wj i i i)
      (Restriction.id p (D.x i) (D.hx i)) (Restriction.id p (D.x i) (D.hx i))
      (D.ฮฑij i i i) e)
    (hejk : IsRestrictionOf p ฮ” hฮ”โ‚‚ hฮ”โ‚ƒ (D.wj i i i) (D.wk i i i)
      (Restriction.id p (D.x i) (D.hx i)) (Restriction.id p (D.x i) (D.hx i))
      (D.ฮฑjk i i i) e)
    (heik : IsRestrictionOf p ฮ” hฮ”โ‚ hฮ”โ‚ƒ (D.wi i i i) (D.wk i i i)
      (Restriction.id p (D.x i) (D.hx i)) (Restriction.id p (D.x i) (D.hx i))
      (D.ฮฑik i i i) e) :
    e = ๐Ÿ™ (D.x i)

CategoryTheory.Functor.DescentDatum.gluing_comp_switchPullback_eq_id, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Stack.lean, line 397. The attribute's comment: โ€œflip identityโ€.

Let D be a descent datum and ฮ”โ‚โ‚ƒ : Vij i j โŸถ Vijk i j i the morphism whose composites with the three projections are prโ‚ i j, prโ‚‚ i j and prโ‚ i j. If ฯƒฯ† is the pullback along ฮ”โ‚โ‚ƒ of the (j, k) gluing isomorphism of the triple (i, j, i), then ฯ† i j โ‰ซ ฯƒฯ† = ๐Ÿ™.

theorem DescentDatum.gluing_comp_switchPullback_eq_id
    (D : DescentDatum p V f Vij prโ‚ prโ‚‚ hVij Vijk sโ‚โ‚‚ sโ‚‚โ‚ƒ hVijk qโ‚ qโ‚‚ qโ‚ƒ hqโ‚ hqโ‚‚ hqโ‚ƒ)
    (i j : I) {ฮ”โ‚โ‚ƒ : Vij i j โŸถ Vijk i j i}
    {hฮ”โ‚ : prโ‚ i j = ฮ”โ‚โ‚ƒ โ‰ซ qโ‚ i j i} {hฮ”โ‚‚ : prโ‚‚ i j = ฮ”โ‚โ‚ƒ โ‰ซ qโ‚‚ i j i}
    {hฮ”โ‚ƒ : prโ‚ i j = ฮ”โ‚โ‚ƒ โ‰ซ qโ‚ƒ i j i}
    {ฯƒฯ† : (D.xrji i j).pt โŸถ (D.xrij i j).pt}
    (hฯƒฯ† : FibreHom p (D.xrji i j).pt (D.xrij i j).pt
      (D.xrji i j).hpt (D.xrij i j).hpt ฯƒฯ†)
    (hij : IsRestrictionOf p ฮ”โ‚โ‚ƒ hฮ”โ‚ hฮ”โ‚‚ (D.wi i j i) (D.wj i j i)
      (D.xrij i j) (D.xrji i j) (D.ฮฑij i j i) (D.ฯ† i j))
    (hji : IsRestrictionOf p ฮ”โ‚โ‚ƒ hฮ”โ‚‚ hฮ”โ‚ƒ (D.wj i j i) (D.wk i j i)
      (D.xrji i j) (D.xrij i j) (D.ฮฑjk i j i) ฯƒฯ†)
    (hik : IsRestrictionOf p ฮ”โ‚โ‚ƒ hฮ”โ‚ hฮ”โ‚ƒ (D.wi i j i) (D.wk i j i)
      (D.xrij i j) (D.xrij i j) (D.ฮฑik i j i) (๐Ÿ™ (D.xrij i j).pt)) :
    D.ฯ† i j โ‰ซ ฯƒฯ† = ๐Ÿ™ (D.xrij i j).pt
Tag 02ZD, a lemma

Tag 02ZD in the Stacks Project.

CategoryTheory.Functor.FamilyDescentDatum.pull, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 95. The attribute's comment: โ€œ(1) the descent datum (g i ^* Y (ฮฑ i), (g i ร— g i') ^* ฯ† (ฮฑ i) (ฮฑ i'))โ€.

Stacks 02ZD (1). The descent datum relative to ๐’ฐ = {U i โŸถ U} obtained from a descent datum (Y j, ฯ† j j') relative to ๐’ฑ = {V j โŸถ V} by pulling back along a morphism of families ฮฆ = (ฮฑ, h, g): its object over U i is the chosen pullback g i ^* Y (ฮฑ i), and its gluing morphisms are those of (Y j, ฯ† j j') pulled back along the g i.

noncomputable def pull (ฮฆ : ๐’ฐ.HomOver ๐’ฑ h) (D : FamilyDescentDatum p ๐’ฑ) :
    FamilyDescentDatum p ๐’ฐ

CategoryTheory.Functor.FamilyDescentDatum.pullFunctor, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 131. The attribute's comment: โ€œ(2) the functor from descent data relative to ๐’ฑ to descent data relative to ๐’ฐโ€.

Stacks 02ZD (2). Pulling back descent data along a morphism of families ฮฆ = (ฮฑ, h, g) from ๐’ฐ to ๐’ฑ is a functor from the category of descent data relative to ๐’ฑ to the category of descent data relative to ๐’ฐ.

noncomputable def pullFunctor (ฮฆ : ๐’ฐ.HomOver ๐’ฑ h) :
    FamilyDescentDatum p ๐’ฑ โฅค FamilyDescentDatum p ๐’ฐ

CategoryTheory.Functor.FamilyDescentDatum.pullFunctorIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 155. The attribute's comment: โ€œ(3) for two morphisms of families over one and the same h : U โŸถ Vโ€.

Stacks 02ZD (3). Two morphisms of families ฮฆ = (ฮฑ, h, g) and ฮฆ' = (ฮฑ', h, g') from ๐’ฐ to ๐’ฑ lying over one and the same morphism h : U โŸถ V of the targets induce canonically isomorphic functors on descent data. The component of the isomorphism at a descent datum (Y j, ฯ† j j') and an index i is the gluing isomorphism of that datum between g i ^* Y (ฮฑ i) and g' i ^* Y (ฮฑ' i).

noncomputable def pullFunctorIso (ฮฆ ฮฆ' : ๐’ฐ.HomOver ๐’ฑ h) : pullFunctor p ฮฆ โ‰… pullFunctor p ฮฆ'

CategoryTheory.Functor.FamilyDescentDatum.pullFunctorIsoOfEq, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 173. The attribute's comment: โ€œ(3) for morphisms of families over h and over h' with h' = h, as in Stacksโ€.

Stacks 02ZD (3), with the hypothesis h = h' on the two morphisms of targets stated as such: morphisms of families ฮฆ over h and ฮฆ' over h' with h' = h induce canonically isomorphic functors on descent data.

noncomputable def pullFunctorIsoOfEq {h' : U โŸถ V} (ฮฆ : ๐’ฐ.HomOver ๐’ฑ h) (ฮฆ' : ๐’ฐ.HomOver ๐’ฑ h')
    (hh : h' = h) : pullFunctor p ฮฆ โ‰… pullFunctor p ฮฆ'

Declarations registered for the tag:

Tag 02ZE, a definition

Tag 02ZE in the Stacks Project.

CategoryTheory.Functor.FamilyDescentDatum.pullFunctor, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/PullbackDescentData.lean, line 131.

Stacks 02ZD (2). Pulling back descent data along a morphism of families ฮฆ = (ฮฑ, h, g) from ๐’ฐ to ๐’ฑ is a functor from the category of descent data relative to ๐’ฑ to the category of descent data relative to ๐’ฐ.

noncomputable def pullFunctor (ฮฆ : ๐’ฐ.HomOver ๐’ฑ h) :
    FamilyDescentDatum p ๐’ฑ โฅค FamilyDescentDatum p ๐’ฐ

Declarations registered for the tag:

Tag 026E, a definition

Tag 026E in the Stacks Project.

CategoryTheory.Functor.SieveDescentDatum.ofFiber, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/OfFiber.lean, line 55. The attribute's comment: โ€œ(1) and (2) are one construction, read at two sieves: the trivial descent datum (X, id_X) on {๐Ÿ™ U} is this datum at the sieve generated by ๐Ÿ™ U, and the canonical descent datum (f_i^* X, can) on {f_i : U_i โ†’ U} is this datum at the sieve that family generates, with can the canonical comparison CategoryTheory.Functor.pullbackFiberComparison.โ€. References: SGA 3 IV (2.1), โ€œcanonical descent datumโ€.

The descent datum of an object x of the fibre over U: its chosen pullbacks, glued by the canonical comparisons of their iterated chosen pullbacks.

noncomputable def ofFiber (x : p.Fiber U) (R : Sieve U) : SieveDescentDatum p R

CategoryTheory.Functor.SieveDescentDatum.IsEffective, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/SieveDescentDatum.lean, line 111. The attribute's comment: โ€œ(3), effectivity of a descent datum, stated as the existence of an object x of the fibre over U and a cartesian morphism from each object of the datum to x compatible with the gluing isomorphisms, in place of an isomorphism with (f_i^* X, can).โ€. References: SGA 3 IV (3.5.1).

A descent datum is effective when it comes from an object x of the fibre over U: there is a cartesian morphism from each of its objects to x, compatibly with the gluing isomorphisms.

def IsEffective : Prop

Declarations registered for the tag:

Tag 026D, a lemma

Tag 026D in the Stacks Project.

CategoryTheory.Functor.pullbackFiberComparison_comp_compIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/StageThreeStack.lean, line 112. The attribute's comment: โ€œcan_ij = (ฮฑ_{prโ‚, f_j})_X โˆ˜ (ฮฑ_{prโ‚€, f_i})_Xโปยน, where can is the gluing isomorphism pullbackFiberComparison of the canonical descent datum of Stacks 026E (2); stated as the commuting square, with ฮฑโปยน the contraction pullbackFiberCompIso of Stacks 02XO and f_i โˆ˜ prโ‚€ = f_j โˆ˜ prโ‚ carried by pullbackFiberCongrโ€.

The comparison of two chosen pullbacks of a chosen pullback is the comparison of the two chosen pullbacks along the composites.

theorem pullbackFiberComparison_comp_compIso {T : ๐’ฎ} (y : p.Fiber T) {V W Z : ๐’ฎ} {g : V โŸถ T}
    {g' : W โŸถ T} (ฮต : Z โŸถ V) (ฮต' : Z โŸถ W) (heq : ฮต โ‰ซ g = ฮต' โ‰ซ g') :
    (pullbackFiberComparison y ฮต ฮต' heq).hom โ‰ซ (pullbackFiberCompIso y g' ฮต').hom =
      (pullbackFiberCompIso y g ฮต).hom โ‰ซ (pullbackFiberCongr y heq).hom

Declarations registered for the tag:

Tag 0GEA, a lemma

Tag 0GEA in the Stacks Project.

CategoryTheory.Functor.isEquivalence_toFamilyDescentDatum_of_homOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/OfRefinement.lean, line 548.

Stacks 0GEA. Let ๐’ฑ = {V j โŸถ U} โŸถ ๐’ฐ = {U i โŸถ U} be a morphism of families of morphisms with fixed target given by ๐Ÿ™ U, a reindexing ฮฑ : J โ†’ I and morphisms V j โŸถ U (ฮฑ j), and let p be a fibred category. Assume that the fibre products U iโ‚ ร—_U U iโ‚‚, U i ร—_U V j and U iโ‚ ร—_U U iโ‚‚ ร—_U V j exist, that ๐’ฎ_U โŸถ DD(๐’ฑ) is an equivalence, that ๐’ฎ_{U i} โŸถ DD(๐’ฑ_i) is fully faithful for every i, and that ๐’ฎ_{U iโ‚ ร—_U U iโ‚‚} โŸถ DD(๐’ฑ_{iโ‚iโ‚‚}) is faithful for every iโ‚, iโ‚‚, where ๐’ฑ_i and ๐’ฑ_{iโ‚iโ‚‚} are the base changes of ๐’ฑ. Then ๐’ฎ_U โŸถ DD(๐’ฐ) is an equivalence.

theorem isEquivalence_toFamilyDescentDatum_of_homOver {p : ๐’ณ โฅค C} [p.IsFibered] {U : C}
    {๐’ฐ : PreZeroHypercover.{w} U} {๐’ฑ : PreZeroHypercover.{w'} U} (ฮฆ : ๐’ฑ.HomOver ๐’ฐ (๐Ÿ™ U))
    [โˆ€ iโ‚ iโ‚‚, HasPullback (๐’ฐ.f iโ‚) (๐’ฐ.f iโ‚‚)]
    [โˆ€ i j, HasPullback (๐’ฐ.f i) (๐’ฑ.f j)]
    [โˆ€ iโ‚ iโ‚‚ j, HasPullback (pullback.fst (๐’ฐ.f iโ‚) (๐’ฐ.f iโ‚‚) โ‰ซ ๐’ฐ.f iโ‚) (๐’ฑ.f j)]
    (hโ‚‚ : (toFamilyDescentDatum p ๐’ฑ).IsEquivalence)
    (hโ‚ƒ : โˆ€ i, Nonempty (toFamilyDescentDatum p (๐’ฑ.pullbackโ‚ (๐’ฐ.f i))).FullyFaithful)
    (hโ‚„ : โˆ€ iโ‚ iโ‚‚, (toFamilyDescentDatum p
      (๐’ฑ.pullbackโ‚ (pullback.fst (๐’ฐ.f iโ‚) (๐’ฐ.f iโ‚‚) โ‰ซ ๐’ฐ.f iโ‚))).Faithful) :
    (toFamilyDescentDatum p ๐’ฐ).IsEquivalence
Sources

Section8.4 Stacks#

Section 8.4 of the Stacks Project, Tag 0268. 9 tags here are carried by 15 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 026F, a definition

Tag 026F in the Stacks Project.

CategoryTheory.Functor.IsStack, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack/Defs.lean, line 44. The attribute's comment: โ€œfor a functor, the three conditions being the three fieldsโ€.

The three conditions of Stacks 026F for a functor p : ๐’ณ โฅค ๐’ฎ: p is a fibred category, the presheaves Mor(x, y) of Stacks 02ZB are sheaves, and descent along a covering sieve is effective.

Condition (2) refers to the chosen pullbacks that condition (1) provides, which is why its field reintroduces isFibered as an instance.

structure IsStack (p : ๐’ณ โฅค ๐’ฎ) (J : GrothendieckTopology ๐’ฎ) : Prop
Tag 02ZF, a lemma

Tag 02ZF in the Stacks Project.

CategoryTheory.Functor.isStack_iff_isEquivalence_toDescentData, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/DescentDataEquivalence.lean, line 375.

Stacks 02ZF. Let p : ๐’ณ โฅค ๐’ฎ be a fibred category over a site (๐’ฎ, J). Then p is a stack if and only if, for every covering ๐’ฐ = {f i : U i โŸถ U} of the site, the functor ๐’ณ_U โฅค DD(๐’ฐ) sending an object of the fibre over U to its canonical descent datum relative to ๐’ฐ is an equivalence.

theorem isStack_iff_isEquivalence_toDescentData (J : GrothendieckTopology ๐’ฎ) :
    p.IsStack J โ†” โˆ€ โฆƒU : ๐’ฎโฆ„ (๐’ฐ : PreZeroHypercover.{max uโ‚ vโ‚} U), ๐’ฐ.sieveโ‚€ โˆˆ J U โ†’
      ((pullbackPseudofunctor p).toDescentData ๐’ฐ.f).IsEquivalence
Tag 04TU, a lemma

Tag 04TU in the Stacks Project.

CategoryTheory.Functor.IsStack.fullSubcategory, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsStack.lean, line 113.

Let p : ๐’ณ โฅค ๐’ฎ be a stack over the site (๐’ฎ, J) and let P cut out a full subcategory of ๐’ณ. If P is closed under strongly cartesian pullbacks and locally closed, both read fibrewise through IsoOverId, then the restriction of p to that full subcategory is a stack.

theorem IsStack.fullSubcategory (p : ๐’ณ โฅค ๐’ฎ) (J : GrothendieckTopology ๐’ฎ) (hp : IsStack p J)
    (P : ObjectProperty ๐’ณ) (h1 : ClosedUnderStronglyCartesian p P)
    (h3 : haveI : p.IsPreFibered := hp.isFibered.toIsPreFibered; LocallyClosed p P J) :
    IsStack (Functor.restrict p P) J
Tag 042W, a lemma

Tag 042W in the Stacks Project.

CategoryTheory.BasedCategory.isStack_iff_of_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Transport.lean, line 32.

Let (๐’ž, J) be a site and let ๐’ณ, ๐’ด be categories over ๐’ž. If ๐’ณ and ๐’ด are equivalent as categories over ๐’ž, then ๐’ณ is a stack over ๐’ž if and only if ๐’ด is.

theorem BasedCategory.isStack_iff_of_equivalence
    (e : BasedCategory.Equivalence ๐’ณ ๐’ด) (J : GrothendieckTopology ๐’ž) :
    ๐’ณ.p.IsStack J โ†” ๐’ด.p.IsStack J
Tag 02ZG, a definition

Tag 02ZG in the Stacks Project.

CategoryTheory.BasedStack, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoCategory.lean, line 62. The attribute's comment: โ€œ(1)โ€.

Stacks 02ZG (1). An object of the 2-category of stacks over the site (๐’ž, J): a category over ๐’ž whose structure functor is a stack.

structure BasedStack (๐’ž : Type uโ‚) [Category.{vโ‚} ๐’ž] (J : GrothendieckTopology ๐’ž)

CategoryTheory.BasedStack.Hom, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoCategory.lean, line 78. The attribute's comment: โ€œ(2)โ€.

Stacks 02ZG (2). A 1-morphism of stacks over ๐’ž: a functor G between the underlying categories with p' โˆ˜ G = p, which carries strongly cartesian morphisms to strongly cartesian morphisms. The first condition is the field w of a BasedFunctor and is repeated as comp_eq inside Functor.IsFibredOneMorphism.

structure Hom (๐’ณ ๐’ด : BasedStack.{vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J)

CategoryTheory.BasedStack.homCategory, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoCategory.lean, line 109. The attribute's comment: โ€œ(3)โ€.

Stacks 02ZG (3). The 2-morphisms between two 1-morphisms of stacks: the morphisms of functors t with p'(t_x) = ๐Ÿ™ (p x) for every object x, that is the BasedNatTrans between the underlying functors over ๐’ž. Nothing is imposed on a 2-morphism beyond that, so this category of 1-morphisms is the one of the ambient 2-category BasedCategory ๐’ž.

instance homCategory (๐’ณ ๐’ด : BasedStack.{vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J) : Category (๐’ณ โŸถ ๐’ด)

CategoryTheory.BasedStack.bicategory, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoCategory.lean, line 203.

Stacks 02ZG. The 2-category of stacks over the site (๐’ž, J): the sub-2-category of the 2-category of fibred categories over ๐’ž (Stacks 02XP) whose objects are the stacks over ๐’ž, whose 1-morphisms are the functors over ๐’ž preserving strongly cartesian morphisms, and whose 2-morphisms are the morphisms of functors whose components lie over identities.

instance bicategory : Bicategory (BasedStack.{vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J)
Tag 026G, a lemma

Tag 026G in the Stacks Project.

CategoryTheory.TwoFibreProductOver.isStack_structureFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/TwoFibreProductDescentIndependentBase.lean, line 647.

The 2-fibre product of stacks over a site (๐’ž, J) is a stack, with the hom universe of the site independent of the hom universe of the three categories of the cospan: if p๐’ณ, p๐’ด, p๐’ฎ are stacks over (๐’ž, J) and F, G are 1-morphisms of fibred categories over ๐’ž, then the structure functor of the explicit 2-fibre product ๐’ณ ร—_๐’ฎ ๐’ด is again a stack.

theorem isStack_structureFunctor
    (p๐’ณ : ๐’ณ โฅค ๐’ž) (p๐’ด : ๐’ด โฅค ๐’ž) (p๐’ฎ : ๐’ฎ โฅค ๐’ž) (F : ๐’ณ โฅค ๐’ฎ) (G : ๐’ด โฅค ๐’ฎ)
    (J : GrothendieckTopology ๐’ž) (h๐’ณ : Functor.IsStack p๐’ณ J) (h๐’ด : Functor.IsStack p๐’ด J)
    (h๐’ฎ : Functor.IsStack p๐’ฎ J) (hF : Functor.IsFibredOneMorphism p๐’ณ p๐’ฎ F)
    (hG : Functor.IsFibredOneMorphism p๐’ด p๐’ฎ G) :
    Functor.IsStack (TwoFibreProductOver.structureFunctor p๐’ณ p๐’ด p๐’ฎ F G) J
Tag 04WQ, a lemma

Tag 04WQ in the Stacks Project.

CategoryTheory.Stack.Hom.isFullyFaithful_iff_morSheafIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Descent/IsPrestack.lean, line 248.

Stacks 04WQ. A 1-morphism of stacks is fully faithful if and only if it induces isomorphisms on the sheaves of morphisms.

Condition (1) is read fibrewise here rather than on the total categories, which is what makes the implication from (2) available without the reduction to strongly cartesian morphisms of the Stacks proof; see Stack.Hom.IsFullyFaithful.

theorem isFullyFaithful_iff_morSheafIso (F : Stack.Hom T T') :
    F.IsFullyFaithful โ†” F.MorSheafIso
Tag 046N, a lemma

Tag 046N in the Stacks Project.

CategoryTheory.Functor.isEquivalenceOver_iff_locallyEssSurjOnFibers, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/FullyFaithfulEquivalence.lean, line 55.

Stacks 046N. Let (๐’ž, J) be a site, let p : ๐’ณ โฅค ๐’ž and q : ๐’ด โฅค ๐’ž be stacks over ๐’ž and let F : ๐’ณ โฅค ๐’ด be a fully faithful 1-morphism of fibred categories over ๐’ž. Then the following are equivalent:

  1. F is an equivalence over ๐’ž;
  2. for every object U of ๐’ž and every object x of the fibre of ๐’ด over U there is a covering sieve of U along each member f of which f^* x is in the essential image of the functor induced by F on the fibres over the source of f.
theorem isEquivalenceOver_iff_locallyEssSurjOnFibers
    {p : ๐’ณ โฅค ๐’ž} {q : ๐’ด โฅค ๐’ž} {F : ๐’ณ โฅค ๐’ด} {J : GrothendieckTopology ๐’ž}
    (hโ‚ : p.IsStack J) (hโ‚‚ : q.IsStack J) (hF : IsFibredOneMorphism p q F)
    [F.Full] [F.Faithful] :
    Nonempty (IsEquivalenceOver p q F) โ†” LocallyEssSurjOnFibers hโ‚‚.isFibered hF.comp_eq J
Tag 03ZZ, a remark

Tag 03ZZ in the Stacks Project.

CategoryTheory.Functor.small_fibreRepresentatives, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FibreRepresentatives.lean, line 102. The attribute's comment: โ€œthe cutdown: a full subcategory of ๐’ณ whose objects form a setโ€.

The objects of the cutdown form a set: they are indexed by the pairs of an object U of ๐’ฎ and an object of the small model of ๐’ณ_U.

instance small_fibreRepresentatives :
    ObjectProperty.Small.{max uโ‚ w} (p.fibreRepresentatives)

CategoryTheory.Functor.small_fiber_restrict_fibreRepresentatives, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FibreRepresentatives.lean, line 118. The attribute's comment: โ€œthe cutdown: each of its fibres is a setโ€.

Each fibre of the cutdown is a set at the universe of condition (4): the fibre over U is covered by the small model of ๐’ณ_U.

instance small_fiber_restrict_fibreRepresentatives (U : ๐’ฎ) :
    Small.{w} ((p.restrict p.fibreRepresentatives).Fiber U)

CategoryTheory.Functor.isEquivalence_ฮน_fibreRepresentatives, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FibreRepresentatives.lean, line 140. The attribute's comment: โ€œ(b): the inclusion of the cutdown is fully faithful and essentially surjectiveโ€.

Stacks 03ZZ (b). The inclusion ๐’ณ_small โฅค ๐’ณ of the cutdown is fully faithful and essentially surjective.

theorem isEquivalence_ฮน_fibreRepresentatives : (p.fibreRepresentatives).ฮน.IsEquivalence

CategoryTheory.Functor.IsStack.fibreRepresentatives, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FibreRepresentatives.lean, line 145. The attribute's comment: โ€œ(a): the restriction of p to the cutdown satisfies the conditions of 026Fโ€.

Stacks 03ZZ (a). If p : ๐’ณ โฅค ๐’ฎ satisfies the three conditions of Stacks 026F over the site (๐’ฎ, J), then so does its restriction to the cutdown; that is, the cutdown is a stack.

theorem IsStack.fibreRepresentatives (J : GrothendieckTopology ๐’ฎ) (hp : p.IsStack J) :
    (p.restrict p.fibreRepresentatives).IsStack J
Sources

Section8.5 Stacks in groupoids#

Section 8.5 of the Stacks Project, Tag 02ZH. 6 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 02ZI, a definition

Tag 02ZI in the Stacks Project.

CategoryTheory.Functor.IsStackInGroupoids, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Stack.lean, line 236.

A functor p : ๐’ฎ โฅค ๐’ž is a stack in groupoids over the site (๐’ž, J) if 1. p is fibred in groupoids; 2. for all x y over U, the presheaf Isom(x, y) satisfies the sheaf condition for every covering family of J, with overlaps given by fibre products; and 3. every descent datum relative to a covering family of J is effective.

A covering family { f i : V i โŸถ U } is one whose generated sieve Sieve.ofArrows V f lies in J U.

structure IsStackInGroupoids (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) : Prop
Tag 02ZJ, a lemma

Tag 02ZJ in the Stacks Project.

CategoryTheory.Functor.stackInGroupoids_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/GroupoidTFAE.lean, line 100.

Stacks 02ZJ. Let (๐’ž, J) be a site and let p : ๐’ฎ โฅค ๐’ž be a category over ๐’ž. The following are equivalent: (1) p is a stack in groupoids over ๐’ž, that is p is fibred in groupoids, the presheaves Isom(x, y) on ๐’ž/U are sheaves, and every descent datum relative to a covering is effective (Stacks 02ZI); (2) p is a stack over ๐’ž and all its fibre categories are groupoids; (3) p is fibred in groupoids over ๐’ž and is a stack over ๐’ž.

public theorem stackInGroupoids_tfae (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) :
    List.TFAE
      [ โˆƒ h : p.IsFiberedInGroupoids,
          haveI : p.IsFibered := h.isFibered
          (โˆ€ (U : ๐’ž) (x y : p.Fiber U),
              Presheaf.IsSheaf (J.over U) (p.isomPresheaf x y)) โˆง p.HasEffectiveDescent J,
        p.IsStack J โˆง โˆ€ U : ๐’ž, IsGroupoid (p.Fiber U),
        p.IsFiberedInGroupoids โˆง p.IsStack J ]
Tag 03YI, a lemma

Tag 03YI in the Stacks Project.

CategoryTheory.Functor.IsStack.isStackInGroupoids_stronglyCartesianOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/GroupoidOfStack.lean, line 421.

The category fibred in groupoids associated to a stack is a stack in groupoids. Let (๐’ž, J) be a site and let p : ๐’ฎ โฅค ๐’ž be a stack (Stacks 026F). Let p' : ๐’ฎ' โฅค ๐’ž be the category fibred in groupoids associated to ๐’ฎ constructed in Stacks 03WQ: the objects of ๐’ฎ' are those of ๐’ฎ, its morphisms are the strongly cartesian morphisms of ๐’ฎ, and p' is the restriction of p. Then p' is a stack in groupoids (Stacks 02ZI): it is fibred in groupoids, its presheaves Isom(x, y) are sheaves, and every descent datum relative to a covering family of J is effective.

public theorem IsStack.isStackInGroupoids_stronglyCartesianOver
    {p : ๐’ฎ โฅค ๐’ž} {J : GrothendieckTopology ๐’ž} (hp : p.IsStack J) :
    haveI : p.IsFibered := hp.isFibered
    haveI : (stronglyCartesianOver p).IsMultiplicative :=
      stronglyCartesianOver_isMultiplicative p
    IsStackInGroupoids.{w} (wideSubcategoryInclusion (stronglyCartesianOver p) โ‹™ p) J
Tag 042X, a lemma

Tag 042X in the Stacks Project.

CategoryTheory.BasedCategory.isFiberedInGroupoids_and_isStack_iff_of_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/GroupoidTransport.lean, line 119.

Stacks 042X. Let (๐’ž, J) be a site and let ๐’ณ, ๐’ด be categories over ๐’ž. If ๐’ณ and ๐’ด are equivalent as categories over ๐’ž, then ๐’ณ is a stack in groupoids over ๐’ž if and only if ๐’ด is.

"Stack in groupoids" is read as clause (3) of Stacks 02ZJ, fibred in groupoids together with being a stack, which is the reading 042X's proof uses; the two conjuncts transport by BasedCategory.isFiberedInGroupoids_iff_of_equivalence and by Stacks 042W, BasedCategory.isStack_iff_of_equivalence.

theorem BasedCategory.isFiberedInGroupoids_and_isStack_iff_of_equivalence
    (e : BasedCategory.Equivalence ๐’ณ ๐’ด) (J : GrothendieckTopology ๐’ž) :
    ๐’ณ.p.IsFiberedInGroupoids โˆง ๐’ณ.p.IsStack J โ†”
      ๐’ด.p.IsFiberedInGroupoids โˆง ๐’ด.p.IsStack J
Tag 02ZK, a definition

Tag 02ZK in the Stacks Project.

CategoryTheory.StackInGroupoids, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Groupoid.lean, line 137. The attribute's comment: โ€œ(1)โ€.

Stacks 02ZK (1). An object of the 2-category of stacks in groupoids over the site (๐’ž, J): a category over ๐’ž whose structure functor is a stack in groupoids.

structure StackInGroupoids (๐’ž : Type uโ‚) [Category.{vโ‚} ๐’ž] (J : GrothendieckTopology ๐’ž)

CategoryTheory.StackInGroupoids.bicategory, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Groupoid.lean, line 153.

Stacks 02ZK. The 2-category of stacks in groupoids over the site (๐’ž, J): the sub-2-category of the 2-category of stacks over ๐’ž (Stacks 02ZG) whose objects are the stacks in groupoids. Since every morphism of a category fibred in groupoids is strongly cartesian, no condition is imposed on a 1-morphism beyond being a functor over ๐’ž โ€” see CategoryTheory.StackInGroupoids.isFibredOneMorphism โ€” so this is the full sub-2-category of the 2-category BasedCategory ๐’ž of categories over ๐’ž spanned by the stacks in groupoids.

instance StackInGroupoids.bicategory :
    Bicategory (StackInGroupoids.{w, vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J)

CategoryTheory.StackInGroupoids.homEquivBasedFunctor, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Groupoid.lean, line 167. The attribute's comment: โ€œ(2)โ€.

Stacks 02ZK (2). The 1-morphisms of the 2-category of stacks in groupoids are the functors over ๐’ž: a 1-morphism ๐’ณ โŸถ ๐’ด is the same thing as a BasedFunctor, that is a functor G with p' โˆ˜ G = p.

def homEquivBasedFunctor : (๐’ณ โŸถ ๐’ด) โ‰ƒ (๐’ณ.toBasedCategory โฅคแต‡ ๐’ด.toBasedCategory)

CategoryTheory.StackInGroupoids.twoHomEquivBasedNatTrans, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Groupoid.lean, line 178. The attribute's comment: โ€œ(3)โ€.

Stacks 02ZK (3). The 2-morphisms of the 2-category of stacks in groupoids are the morphisms of functors whose components lie over identities: a 2-morphism F โŸถ G is the same thing as a BasedNatTrans, that is a morphism of functors t with p'(t_x) = ๐Ÿ™ (p x) for every object x.

def twoHomEquivBasedNatTrans {๐’ณ ๐’ด : StackInGroupoids.{w, vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J} (F G : ๐’ณ โŸถ ๐’ด) :
    (F โŸถ G) โ‰ƒ BasedNatTrans F.hom G.hom
Tag 02ZL, a lemma

Tag 02ZL in the Stacks Project.

CategoryTheory.TwoFibreProductOver.isStack_isFiberedInGroupoids_structureFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/SetoidTwoFibreProduct.lean, line 125.

Stacks 02ZL. The 2-fibre product of stacks in groupoids over a site (๐’ž, J) is a stack in groupoids: the construction of Stacks 0040 does not leave the 2-category of stacks in groupoids.

"Stack in groupoids" is spelled out as its two conditions, being a stack over (๐’ž, J) and being fibred in groupoids, because the library's CategoryTheory.Functor.IsStackInGroupoids is a second, unrelated rendering of the notion (see the implementation notes of StacksFrontier.CategoryTheory.Sites.Stack.Setoid). The first condition is Stacks 026G and the second is Stacks 0041; the hypotheses on F and G are only that they are strictly over ๐’ž, since a functor over ๐’ž into a category fibred in groupoids automatically preserves strongly cartesian morphisms.

theorem isStack_isFiberedInGroupoids_structureFunctor {J : GrothendieckTopology ๐’ž}
    (h๐’ณ : Functor.IsStack p๐’ณ J) (h๐’ด : Functor.IsStack p๐’ด J) (h๐’ฎ : Functor.IsStack p๐’ฎ J)
    (g๐’ณ : p๐’ณ.IsFiberedInGroupoids) (g๐’ด : p๐’ด.IsFiberedInGroupoids)
    (g๐’ฎ : p๐’ฎ.IsFiberedInGroupoids) (hF : F โ‹™ p๐’ฎ = p๐’ณ) (hG : G โ‹™ p๐’ฎ = p๐’ด) :
    Functor.IsStack (structureFunctor p๐’ณ p๐’ด p๐’ฎ F G) J โˆง
      (structureFunctor p๐’ณ p๐’ด p๐’ฎ F G).IsFiberedInGroupoids
Sources

Section8.6 Stacks in setoids#

Section 8.6 of the Stacks Project, Tag 042Y. 11 tags here are carried by 14 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 042Z, a definition

Tag 042Z in the Stacks Project.

CategoryTheory.Functor.IsStackInSetoids, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Setoid.lean, line 91. The attribute's comment: โ€œ(1)โ€.

Stacks 042Z. A stack in setoids over the site (๐’ž, J): a stack over ๐’ž all of whose fibre categories are setoids, that is groupoids in which there is at most one morphism between any two objects.

structure Functor.IsStackInSetoids (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) : Prop

CategoryTheory.Functor.IsStackInSets, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Setoid.lean, line 104. The attribute's comment: โ€œ(2)โ€.

Stacks 042Z. A stack in sets, also called a stack in discrete categories, over the site (๐’ž, J): a stack over ๐’ž all of whose fibre categories are discrete.

structure Functor.IsStackInSets (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) : Prop
Tag 0430, a lemma

Tag 0430 in the Stacks Project.

CategoryTheory.Functor.isStackInSets_iff_isSheaf_objPresheaf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FiberedInSets.lean, line 272.

Let (๐’ž, J) be a site. Under the equivalence of Categories, Stacks 02Y2 between presheaves of sets on ๐’ž and categories fibred in sets over ๐’ž, the stacks in sets correspond precisely to the sheaves: a category fibred in sets p : ๐’ฎ โฅค ๐’ž is a stack in sets over (๐’ž, J) if and only if its presheaf of objects U โ†ฆ Ob(๐’ฎ_U) is a sheaf.

theorem isStackInSets_iff_isSheaf_objPresheaf (J : GrothendieckTopology ๐’ž) :
    p.IsStackInSets J โ†” Presheaf.IsSheaf J (objPresheaf p)
Tag 0432, a lemma

Tag 0432 in the Stacks Project.

CategoryTheory.BasedCategory.isStackInSetoids_iff_isStackInSets_of_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/SetoidToSets.lean, line 117.

Let (๐’ž, J) be a site, let ๐’ณ be a category fibred in setoids over ๐’ž, and let ๐’ด be a category fibred in sets equivalent to ๐’ณ as a category over ๐’ž. Then ๐’ณ is a stack in setoids if and only if ๐’ด is a stack in sets.

theorem BasedCategory.isStackInSetoids_iff_isStackInSets_of_equivalence
    {๐’ž : Type uโ‚} [Category.{vโ‚} ๐’ž] {๐’ณ ๐’ด : BasedCategory.{vโ‚‚, uโ‚‚} ๐’ž}
    (e : BasedCategory.Equivalence ๐’ณ ๐’ด) [๐’ณ.p.IsFiberedInSetoids] [๐’ด.p.IsFiberedInSets]
    (J : GrothendieckTopology ๐’ž) :
    ๐’ณ.p.IsStackInSetoids J โ†” ๐’ด.p.IsStackInSets J

CategoryTheory.BasedCategory.isStackInSetoids_iff_isSheaf_objPresheaf_of_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/SetoidToSets.lean, line 131. The attribute's comment: โ€œthe "in other words" sentence: iff the presheaf U โ†ฆ Ob(๐’ฎ_U)/โ‰… is a sheafโ€.

Let (๐’ž, J) be a site, let ๐’ณ be a category fibred in setoids over ๐’ž, and let ๐’ด be a category fibred in sets equivalent to ๐’ณ as a category over ๐’ž. Then ๐’ณ is a stack in setoids if and only if the presheaf of objects U โ†ฆ Ob(๐’ด_U) of ๐’ด is a sheaf. Its value at U is identified with the set Ob(๐’ณ_U)/โ‰… of isomorphism classes of the fibre of ๐’ณ over U by CategoryTheory.BasedCategory.Equivalence.fiberQuotientEquiv.

theorem BasedCategory.isStackInSetoids_iff_isSheaf_objPresheaf_of_equivalence
    {๐’ž : Type uโ‚} [Category.{vโ‚} ๐’ž] {๐’ณ ๐’ด : BasedCategory.{vโ‚‚, uโ‚‚} ๐’ž}
    (e : BasedCategory.Equivalence ๐’ณ ๐’ด) [๐’ณ.p.IsFiberedInSetoids] [๐’ด.p.IsFiberedInSets]
    (J : GrothendieckTopology ๐’ž) :
    ๐’ณ.p.IsStackInSetoids J โ†” Presheaf.IsSheaf J (Functor.objPresheaf ๐’ด.p)
Tag 0431, a lemma

Tag 0431 in the Stacks Project.

CategoryTheory.BasedCategory.isStackInSetoids_iff_of_equivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Transport.lean, line 40.

Let (๐’ž, J) be a site and let ๐’ณ, ๐’ด be categories over ๐’ž. If ๐’ณ and ๐’ด are equivalent as categories over ๐’ž, then ๐’ณ is a stack in setoids over ๐’ž if and only if ๐’ด is.

theorem BasedCategory.isStackInSetoids_iff_of_equivalence
    (e : BasedCategory.Equivalence ๐’ณ ๐’ด) (J : GrothendieckTopology ๐’ž) :
    ๐’ณ.p.IsStackInSetoids J โ†” ๐’ด.p.IsStackInSetoids J
Tag 0433, a definition

Tag 0433 in the Stacks Project.

CategoryTheory.StackInSetoids, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Setoid.lean, line 134.

Stacks 0433. An object of the 2-category of stacks in setoids over the site (๐’ž, J): a category over ๐’ž whose structure functor is a stack in setoids.

structure StackInSetoids (๐’ž : Type uโ‚) [Category.{vโ‚} ๐’ž] (J : GrothendieckTopology ๐’ž)

CategoryTheory.StackInSetoids.bicategory, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Setoid.lean, line 148.

Stacks 0433. The 2-category of stacks in setoids over the site (๐’ž, J): the full sub-2-category of the 2-category BasedCategory ๐’ž of categories over ๐’ž spanned by the stacks in setoids. A 1-morphism ๐’ณ โŸถ ๐’ด is a functor G over ๐’ž, that is with p' โˆ˜ G = p, and a 2-morphism F โŸถ G is a morphism of functors t with p'(t_x) = ๐Ÿ™ (p x) for every object x.

instance StackInSetoids.bicategory : Bicategory (StackInSetoids.{vโ‚, vโ‚‚, uโ‚, uโ‚‚} ๐’ž J)
Tag 0434, a lemma

Tag 0434 in the Stacks Project.

CategoryTheory.TwoFibreProductOver.isStackInSetoids, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/SetoidTwoFibreProduct.lean, line 143.

Stacks 0434. The 2-fibre product of stacks in setoids over a site (๐’ž, J) is a stack in setoids: the construction of Stacks 0040 does not leave the 2-category of stacks in setoids.

Its three conditions are Stacks 026G (isStack_structureFunctor), Stacks 0041 (fiber_isGroupoid) and thinness of the fibres (fiber_isThin). Nothing is asked of F and G beyond being strictly over ๐’ž, since a functor over ๐’ž into a category fibred in groupoids automatically preserves strongly cartesian morphisms.

theorem isStackInSetoids {J : GrothendieckTopology ๐’ž} (h๐’ณ : p๐’ณ.IsStackInSetoids J)
    (h๐’ด : p๐’ด.IsStackInSetoids J) (h๐’ฎ : p๐’ฎ.IsStackInSetoids J)
    (hF : F โ‹™ p๐’ฎ = p๐’ณ) (hG : G โ‹™ p๐’ฎ = p๐’ด) :
    (structureFunctor p๐’ณ p๐’ด p๐’ฎ F G).IsStackInSetoids J
Tag 05UI, a lemma

Tag 05UI in the Stacks Project.

CategoryTheory.Functor.isStackInSetoids_twoFibreProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/TwoFibreProductSetoid.lean, line 98.

Let ๐’ฏ be a stack in groupoids and ๐’ฎ a stack over the site (๐’ž, J), and let โ„› be a stack in setoids. Let f : ๐’ฏ โฅค ๐’ฎ and g : โ„› โฅค ๐’ฎ be 1-morphisms with f faithful. Then the 2-fibre product ๐’ฏ ร—_{f, ๐’ฎ, g} โ„› is a stack in setoids.

theorem Functor.isStackInSetoids_twoFibreProduct (J : GrothendieckTopology ๐’ž)
    (h๐’ฏ : Functor.IsStack p๐’ฏ J) (g๐’ฏ : p๐’ฏ.IsFiberedInGroupoids)
    (hโ„› : pโ„›.IsStackInSetoids J) (h๐’ฎ : Functor.IsStack p๐’ฎ J)
    (hF : p๐’ฏ.IsFibredOneMorphism p๐’ฎ f) (hG : pโ„›.IsFibredOneMorphism p๐’ฎ g) [f.Faithful] :
    (TwoFibreProductOver.structureFunctor p๐’ฏ pโ„› p๐’ฎ f g).IsStackInSetoids J
Tag 05UJ, a lemma

Tag 05UJ in the Stacks Project.

CategoryTheory.Functor.isStackInSetoids_twoFibreProduct_of_isStackInSetoids, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/TwoFibreProductSetoid.lean, line 109.

Let ๐’ฎ be a stack over the site (๐’ž, J) and let ๐’ฎโ‚, ๐’ฎโ‚‚ be stacks in setoids, with 1-morphisms f_i : ๐’ฎ_i โฅค ๐’ฎ. Then ๐’ฎโ‚ ร—_{fโ‚, ๐’ฎ, fโ‚‚} ๐’ฎโ‚‚ is a stack in setoids.

theorem Functor.isStackInSetoids_twoFibreProduct_of_isStackInSetoids
    (J : GrothendieckTopology ๐’ž)
    (h๐’ฏ : p๐’ฏ.IsStackInSetoids J) (hโ„› : pโ„›.IsStackInSetoids J)
    (h๐’ฎ : Functor.IsStack p๐’ฎ J)
    (hF : p๐’ฏ.IsFibredOneMorphism p๐’ฎ f) (hG : pโ„›.IsFibredOneMorphism p๐’ฎ g) :
    (TwoFibreProductOver.structureFunctor p๐’ฏ pโ„› p๐’ฎ f g).IsStackInSetoids J
Tag 06DV, a lemma

Tag 06DV in the Stacks Project.

CategoryTheory.Functor.faithful_of_faithful_fst, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FaithfulDescent.lean, line 253.

Stacks 06DV. In a 2-cartesian diagram of categories fibred in groupoids over a site with ๐’ฏโ‚ a stack, if every object of a fibre of ๐’ฎโ‚ is locally in the essential image of F : ๐’ฎโ‚‚ โฅค ๐’ฎโ‚ and the first projection ๐’ฎโ‚‚ ร—_{๐’ฎโ‚} ๐’ฏโ‚ โฅค ๐’ฎโ‚‚ is faithful, then G : ๐’ฏโ‚ โฅค ๐’ฎโ‚ is faithful.

By Stacks 003Z faithfulness may be checked on the fibres; there the fibres of ๐’ฏโ‚ are groupoids, so two morphisms ฮฑ, ฮฒ : y โŸถ y' with G ฮฑ = G ฮฒ differ by the endomorphism ฮฒ โˆ˜ ฮฑโปยน of y, which G sends to the identity and which is therefore the identity by CategoryTheory.Functor.eq_id_of_map_eq_id_of_locallyEssSurj.

theorem faithful_of_faithful_fst (hFeq : F โ‹™ p๐’ฎโ‚ = p๐’ฎโ‚‚) (hGeq : G โ‹™ p๐’ฎโ‚ = p๐’ฏโ‚)
    (hgpdโ‚ : p๐’ฎโ‚.IsFiberedInGroupoids) (hgpdT : p๐’ฏโ‚.IsFiberedInGroupoids)
    {J : GrothendieckTopology ๐’ž} (hstack : p๐’ฏโ‚.IsStack J)
    (hloc : LocallyEssSurjOnFibers hgpdโ‚.isFibered hFeq J)
    (hfst : (TwoFibreProductOver.fst p๐’ฎโ‚‚ p๐’ฏโ‚ p๐’ฎโ‚ F G).Faithful) :
    G.Faithful
Tag 05W9, a lemma

Tag 05W9 in the Stacks Project.

CategoryTheory.Functor.isStackInSetoids_of_isStackInSetoids_twoFibreProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/SetoidDescent.lean, line 124.

Stacks 05W9. In a 2-cartesian diagram of stacks in groupoids over a site, if F is fully faithful, every object of a fibre of ๐’ฎโ‚ is locally in the essential image of F, and the 2-fibre product ๐’ฎโ‚‚ ร—_{๐’ฎโ‚} ๐’ฏโ‚ is a stack in setoids, then ๐’ฏโ‚ is a stack in setoids.

Being a stack and having groupoid fibres are hypotheses โ€” they are what makes ๐’ฏโ‚ a stack in groupoids โ€” so the content is thinness of the fibres of ๐’ฏโ‚, and that is CategoryTheory.Functor.eq_id_of_fibre_isThin_of_locallyEssSurj applied to ฮฒ โˆ˜ ฮฑโปยน, the fibres of ๐’ฏโ‚ being groupoids.

theorem isStackInSetoids_of_isStackInSetoids_twoFibreProduct (hFeq : F โ‹™ p๐’ฎโ‚ = p๐’ฎโ‚‚)
    (hGeq : G โ‹™ p๐’ฎโ‚ = p๐’ฏโ‚) (hgpdโ‚ : p๐’ฎโ‚.IsFiberedInGroupoids)
    (hgpdโ‚‚ : p๐’ฎโ‚‚.IsFiberedInGroupoids) (hgpdT : p๐’ฏโ‚.IsFiberedInGroupoids)
    [F.Full] [F.Faithful] {J : GrothendieckTopology ๐’ž} (hstack : p๐’ฏโ‚.IsStack J)
    (hloc : LocallyEssSurjOnFibers hgpdโ‚.isFibered hFeq J)
    (hTโ‚‚ : (TwoFibreProductOver.structureFunctor p๐’ฎโ‚‚ p๐’ฏโ‚ p๐’ฎโ‚ F G).IsStackInSetoids J) :
    p๐’ฏโ‚.IsStackInSetoids J
Tag 0CKJ, a lemma

Tag 0CKJ in the Stacks Project.

CategoryTheory.Functor.isStack_of_faithful_of_isSheaf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/FaithfulGroupoidDescent.lean, line 320.

Descent along a faithful 1-morphism into a stack in groupoids. Let (๐’ž, J) be a site and let F : ๐’ฎ โฅค ๐’ฏ be a 1-morphism of categories fibred in groupoids over ๐’ž, that is a functor with F โ‹™ q = p. Assume that (1) ๐’ฏ is a stack in groupoids over ๐’ž, (2) for every object U of ๐’ž the functor ๐’ฎ_U โฅค ๐’ฏ_U of fibre categories is faithful, and (3) for every object y of ๐’ฏ over U the presheaf on ๐’ž/U sending h : V โŸถ U to the isomorphism classes of pairs (x, f) with x an object of ๐’ฎ_V and f : F(x) โŸถ h^* y a morphism of ๐’ฏ_V is a sheaf. Then ๐’ฎ is a stack in groupoids over ๐’ž.

Condition (3) is the two hypotheses hsep and hglue, in which a pair over h is a morphism f : F.obj x โŸถ y lying over h, and the class of (xโ‚‚, fโ‚‚) is the restriction of the class of (xโ‚, fโ‚) along g : W โŸถ V when F.map c โ‰ซ fโ‚ = fโ‚‚ for some lift c : xโ‚‚ โŸถ xโ‚ of g.

public theorem isStack_of_faithful_of_isSheaf {p : ๐’ฎ โฅค ๐’ž} {q : ๐’ฏ โฅค ๐’ž} {F : ๐’ฎ โฅค ๐’ฏ}
    {J : GrothendieckTopology ๐’ž} (hp : p.IsFiberedInGroupoids) (hq : q.IsFiberedInGroupoids)
    (hF : F โ‹™ q = p) (hT : q.IsStack J)
    (hfaithful : โˆ€ U : ๐’ž, (Fiber.fiberInclusion (p := p) (S := U) โ‹™ F).Faithful)
    (hsep : โˆ€ (y : ๐’ฏ) โฆƒV : ๐’žโฆ„ (h : V โŸถ q.obj y) (R : Sieve V), R โˆˆ J V โ†’
      โˆ€ โฆƒx x' : ๐’ฎโฆ„ (f : F.obj x โŸถ y) (f' : F.obj x' โŸถ y),
        q.IsHomLift h f โ†’ q.IsHomLift h f' โ†’
        (โˆ€ โฆƒW : ๐’žโฆ„ (g : W โŸถ V), R g โ†’ โˆƒ (z : ๐’ฎ) (c : z โŸถ x) (c' : z โŸถ x'),
          p.IsHomLift g c โˆง p.IsHomLift g c' โˆง F.map c โ‰ซ f = F.map c' โ‰ซ f') โ†’
        โˆƒ e : x โŸถ x', p.IsHomLift (๐Ÿ™ V) e โˆง F.map e โ‰ซ f' = f)
    (hglue : โˆ€ (y : ๐’ฏ) โฆƒV : ๐’žโฆ„ (h : V โŸถ q.obj y) (R : Sieve V), R โˆˆ J V โ†’
      โˆ€ (x : โˆ€ โฆƒW : ๐’žโฆ„ (g : W โŸถ V), R g โ†’ ๐’ฎ)
        (f : โˆ€ โฆƒW : ๐’žโฆ„ (g : W โŸถ V) (hg : R g), F.obj (x g hg) โŸถ y),
        (โˆ€ โฆƒW : ๐’žโฆ„ (g : W โŸถ V) (hg : R g), q.IsHomLift (g โ‰ซ h) (f g hg)) โ†’
        (โˆ€ โฆƒW W' : ๐’žโฆ„ (g : W โŸถ V) (hg : R g) (k : W' โŸถ W),
          โˆƒ c : x (k โ‰ซ g) (R.downward_closed hg k) โŸถ x g hg,
            p.IsHomLift k c โˆง F.map c โ‰ซ f g hg = f (k โ‰ซ g) (R.downward_closed hg k)) โ†’
        โˆƒ (xโ‚€ : ๐’ฎ) (fโ‚€ : F.obj xโ‚€ โŸถ y), q.IsHomLift h fโ‚€ โˆง
          โˆ€ โฆƒW : ๐’žโฆ„ (g : W โŸถ V) (hg : R g), โˆƒ c : x g hg โŸถ xโ‚€,
            p.IsHomLift g c โˆง F.map c โ‰ซ fโ‚€ = f g hg) :
    p.IsStack J
Sources

Section8.7 The inertia stack#

Section 8.7 of the Stacks Project, Tag 036X. 2 tags here are carried by 5 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 036Y, a lemma

Tag 036Y in the Stacks Project.

CategoryTheory.RelativeInertia.isStack, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/Inertia.lean, line 140. The attribute's comment: โ€œ(1)โ€.

The relative inertia I_{๐’ฎ/๐’ฎ'} of a 1-morphism F of stacks over the site (๐’ž, J), with its structure functor ฯ€ โ‹™ p, is a stack over ๐’ž; taking F = p and p' = ๐Ÿญ ๐’ž, so is the absolute inertia I_๐’ฎ.

Only the fibredness half of the conclusion is proved, from Stacks 034H (2); the descent of morphisms and the effectivity of descent for the inertia are the hypotheses hmor and heff.

theorem isStack (hp : p.IsStack J) (_hp' : p'.IsStack J) (hF : p.IsFibredOneMorphism p' F)
    (hmor : haveI : (RelativeInertia.ฯ€ F โ‹™ p).IsFibered :=
        RelativeInertia.isFibered F p p' hp.isFibered hF
      โˆ€ (U : ๐’ž) (x y : (RelativeInertia.ฯ€ F โ‹™ p).Fiber U),
        Functor.IsMorSheaf (RelativeInertia.ฯ€ F โ‹™ p) J U x y)
    (heff : haveI : (RelativeInertia.ฯ€ F โ‹™ p).IsFibered :=
        RelativeInertia.isFibered F p p' hp.isFibered hF
      Functor.HasEffectiveDescent (RelativeInertia.ฯ€ F โ‹™ p) J) :
    Functor.IsStack (RelativeInertia.ฯ€ F โ‹™ p) J

CategoryTheory.RelativeInertia.isStack_and_fiber_isGroupoid, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/Inertia.lean, line 160. The attribute's comment: โ€œ(2)โ€.

If ๐’ฎ and ๐’ฎ' are stacks in groupoids over the site (๐’ž, J), then so is the relative inertia I_{๐’ฎ/๐’ฎ'}; taking F = p and p' = ๐Ÿญ ๐’ž, so is the absolute inertia I_๐’ฎ.

Being a stack in groupoids is written out as being a stack with groupoid fibres; the stack condition on the inertia is the hypothesis hst, which is part (1), and what is proved here is the remaining content, that the fibres of the inertia are groupoids.

theorem isStack_and_fiber_isGroupoid (_hp : p.IsStack J) (hgp : โˆ€ U, IsGroupoid (p.Fiber U))
    (_hp' : p'.IsStack J) (_hgp' : โˆ€ U, IsGroupoid (p'.Fiber U))
    (hst : Functor.IsStack (RelativeInertia.ฯ€ F โ‹™ p) J) :
    Functor.IsStack (RelativeInertia.ฯ€ F โ‹™ p) J โˆง
      โˆ€ U, IsGroupoid ((RelativeInertia.ฯ€ F โ‹™ p).Fiber U)

CategoryTheory.RelativeInertia.isStackInSetoids, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/Inertia.lean, line 173. The attribute's comment: โ€œ(3)โ€.

If ๐’ฎ and ๐’ฎ' are stacks in setoids over the site (๐’ž, J), then so is the relative inertia I_{๐’ฎ/๐’ฎ'}; taking F = p and p' = ๐Ÿญ ๐’ž, so is the absolute inertia I_๐’ฎ.

The stack condition on the inertia is the hypothesis hst, which is part (1); what is proved here is the remaining content, that the fibres of the inertia are setoids.

theorem isStackInSetoids (hp : p.IsStackInSetoids J) (_hp' : p'.IsStackInSetoids J)
    (hst : Functor.IsStack (RelativeInertia.ฯ€ F โ‹™ p) J) :
    (RelativeInertia.ฯ€ F โ‹™ p).IsStackInSetoids J
Tag 04ZM, a lemma

Tag 04ZM in the Stacks Project.

CategoryTheory.RelativeInertia.ฯ€_isEquivalence_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/Inertia.lean, line 189.

Let (๐’ž, J) be a site and let ๐’ฎ be a stack in groupoids over ๐’ž, written out as a stack with groupoid fibres. The forgetful 1-morphism ฯ€ : I_๐’ฎ โฅค ๐’ฎ of the absolute inertia is an equivalence if and only if ๐’ฎ is a stack in setoids.

theorem ฯ€_isEquivalence_iff (hp : p.IsStack J) (hg : โˆ€ U, IsGroupoid (p.Fiber U)) :
    (RelativeInertia.ฯ€ p).IsEquivalence โ†” p.IsStackInSetoids J

CategoryTheory.RelativeInertia.ฯ€_comp_neutralSection_eq_id, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/Inertia.lean, line 204.

For a stack in setoids the neutral section x โ†ฆ (x, ๐Ÿ™) is a strict two-sided inverse of ฯ€, so ฯ€ is an isomorphism of categories over ๐’ž and in particular an equivalence in the 2-category of stacks over ๐’ž, not merely an equivalence of categories.

theorem ฯ€_comp_neutralSection_eq_id (h : p.IsStackInSetoids J) :
    RelativeInertia.ฯ€ p โ‹™ RelativeInertia.neutralSection p = ๐Ÿญ (AbsoluteInertia p)
Sources

Section8.8 Stackification of fibred categories#

Section 8.8 of the Stacks Project, Tag 02ZM. 5 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 02ZN, a lemma

Tag 02ZN in the Stacks Project.

CategoryTheory.Functor.exists_isStackification, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/Stackification.lean, line 80.

Let (๐’ž, J) be a site and let q : ๐’ด โฅค ๐’ž be a fibred category. There exist a stack q' : ๐’ด' โฅค ๐’ž over (๐’ž, J) and a 1-morphism G : ๐’ด โฅค ๐’ด' of fibred categories over ๐’ž such that

  1. for every U and all x, y in the fibre ๐’ด_U the map Mor(x, y) โŸถ Mor(G x, G y) of presheaves on ๐’ž/U exhibits its target as the sheafification of its source, and
  2. every object of a fibre of ๐’ด' is, along a covering sieve of the base, in the essential image of the functor induced by G on fibres.

The objects and morphisms of ๐’ด' live in Type (max tโ‚ tโ‚‚ w vb), the morphism universe of ๐’ด.

theorem exists_isStackification :
    โˆƒ (๐’ด' : Type (max tโ‚ tโ‚‚ w vb)) (inst : Category.{max tโ‚ tโ‚‚ w vb} ๐’ด'),
      letI := inst
      โˆƒ (q' : ๐’ด' โฅค ๐’ž) (instq : q'.IsFibered),
        letI := instq
        โˆƒ (G : ๐’ด โฅค ๐’ด') (hG : q.IsFibredOneMorphism q' G),
          q'.IsStack J โˆง
            (โˆ€ (U : ๐’ž) (x y : q.Fiber U),
                Presheaf.IsLocallyInjective (J.over U) (hG.morPresheafMap x y) โˆง
                  Presheaf.IsLocallySurjective (J.over U) (hG.morPresheafMap x y)) โˆง
              โˆ€ (U : ๐’ž) (x' : q'.Fiber U), โˆƒ R โˆˆ J U, โˆ€ โฆƒV : ๐’žโฆ„ โฆƒf : V โŸถ Uโฆ„, R.arrows f โ†’
                (fiberFunctorOfCompEq hG.comp_eq V).essImage (pullbackFiber q' x' f)
Tag 0435, a lemma

Tag 0435 in the Stacks Project.

CategoryTheory.Functor.Stackification.extend, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyFunctor.lean, line 989.

The functor underlying the extension of F along G, Stacks 0435. Its value on an object X of ๐’ฎ' is the object of ๐’ณ to which the images under F of a chosen local presentation of X descend, and its value on a morphism is the morphism glued from the transfers along G of the transition morphisms of the chosen presentations.

noncomputable def extend : ๐’ฎ' โฅค ๐’ณ

CategoryTheory.Functor.Stackification.extend_isFibredOneMorphism, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyFunctor.lean, line 1006.

The extension is a 1-morphism of fibred categories over ๐’ž: it is strictly over ๐’ž and preserves strongly cartesian morphisms.

theorem extend_isFibredOneMorphism :
    p'.IsFibredOneMorphism q (extend hG hF hmor hqmor hobj hdesc)

CategoryTheory.Functor.Stackification.unit, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyFunctor.lean, line 1225.

The 2-isomorphism G โ‹™ H โ‰… F of Stacks 0435. Its component at A compares the object of ๐’ณ that the chosen presentation of G A descends to with F A, and it is an isomorphism because both are descents of presentations of one and the same object of ๐’ฎ'.

noncomputable def unit : G โ‹™ extend hG hF hmor hqmor hobj hdesc โ‰… F

CategoryTheory.Functor.Stackification.isHomLift_unit_app, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyFunctor.lean, line 1239.

Every component of the 2-isomorphism lies over an identity, so it is a 2-morphism of fibred categories over ๐’ž.

lemma isHomLift_unit_app (A : ๐’ฎ) :
    q.IsHomLift (๐Ÿ™ (p.obj A)) ((unit hG hF hmor hqmor hobj hdesc).hom.app A)
Tag 04W9, a lemma

Tag 04W9 in the Stacks Project.

CategoryTheory.Functor.Stackification.restrict_isEquivalence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyUniqueness.lean, line 850.

Stacks 04W9. Restriction along a stackification G : ๐’ฎ โฅค ๐’ฎ' is an equivalence from the category of 1-morphisms ๐’ฎ' โฅค ๐’ณ of fibred categories over ๐’ž into a stack, and their 2-morphisms, onto the category of 1-morphisms ๐’ฎ โฅค ๐’ณ and their 2-morphisms.

theorem restrict_isEquivalence : (restrictMor (q := q) hG).IsEquivalence

CategoryTheory.Functor.Stackification.restrictEquivalence, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyUniqueness.lean, line 860.

The canonical equivalence of morphism categories of Stacks 04W9, Mor_{Stacks/๐’ž}(๐’ฎ', ๐’ณ) โ‰Œ Mor_{Fib/๐’ž}(๐’ฎ, ๐’ณ). Its functor is restriction along the stackification G, and a quasi-inverse is the extension of Stacks 0435.

noncomputable def restrictEquivalence : FibredMor p' q โ‰Œ FibredMor p q
Tag 04Y1, a lemma

Tag 04Y1 in the Stacks Project.

CategoryTheory.TwoFibreProductOver.isStackification_stackifyMap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/TwoFibreProduct.lean, line 1332.

Stacks 04Y1. Let (๐’ž, J) be a site, let f : ๐’ณ โฅค ๐’ด and g : ๐’ต โฅค ๐’ด be 1-morphisms of fibred categories over ๐’ž, and let i : ๐’ณ โฅค ๐’ณ', j : ๐’ด โฅค ๐’ด', k : ๐’ต โฅค ๐’ต' be stackifications (Stacks 02ZP: the targets are stacks over (๐’ž, J), the induced maps Mor(x, y) โŸถ Mor(i x, i y) of presheaves on ๐’ž/U are locally bijective, and every object of the target is locally in the essential image), and let f' : ๐’ณ' โฅค ๐’ด', g' : ๐’ต' โฅค ๐’ด' be 1-morphisms of fibred categories over ๐’ž 2-commuting with f and g along i, j, k via vertical 2-isomorphisms ฮฑ, ฮฒ. Then the stackification of the 2-fibre product is the 2-fibre product of the stackifications: the 2-fibre product ๐’ณ' ร—_{๐’ด'} ๐’ต' is a stack over (๐’ž, J) โ€” it is a fibred category by Stacks 02XQ โ€” and the canonical 1-morphism ๐’ณ ร—_๐’ด ๐’ต โฅค ๐’ณ' ร—_{๐’ด'} ๐’ต', CategoryTheory.TwoFibreProductOver.stackifyMap, is a 1-morphism of fibred categories over ๐’ž which is a stackification of ๐’ณ ร—_๐’ด ๐’ต, in the same two clauses.

theorem isStackification_stackifyMap {J : GrothendieckTopology ๐’ž}
    (h๐’ณ : p๐’ณ.IsFibered) (h๐’ด : p๐’ด.IsFibered) (h๐’ต : p๐’ต.IsFibered)
    (hs๐’ณ' : p๐’ณ'.IsStack J) (hs๐’ด' : p๐’ด'.IsStack J) (hs๐’ต' : p๐’ต'.IsStack J)
    (hf : p๐’ณ.IsFibredOneMorphism p๐’ด f) (hg : p๐’ต.IsFibredOneMorphism p๐’ด g)
    (hf' : p๐’ณ'.IsFibredOneMorphism p๐’ด' f') (hg' : p๐’ต'.IsFibredOneMorphism p๐’ด' g')
    (hi : p๐’ณ.IsFibredOneMorphism p๐’ณ' i) (hj : p๐’ด.IsFibredOneMorphism p๐’ด' j)
    (hk : p๐’ต.IsFibredOneMorphism p๐’ต' k)
    (hmor๐’ณ : haveI : p๐’ณ.IsFibered := h๐’ณ
      haveI : p๐’ณ'.IsFibered := hs๐’ณ'.isFibered
      โˆ€ (V : ๐’ž) (xโ‚ xโ‚‚ : p๐’ณ.Fiber V),
        Presheaf.IsLocallyInjective (J.over V) (hi.morPresheafMap xโ‚ xโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over V) (hi.morPresheafMap xโ‚ xโ‚‚))
    (hobj๐’ณ : โˆ€ x' : ๐’ณ', โˆƒ R โˆˆ J (p๐’ณ'.obj x'), โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ณ'.obj x'), R.arrows u โ†’
      โˆƒ (x : ๐’ณ) (ฯ† : i.obj x โŸถ x'), p๐’ณ'.IsStronglyCartesian u ฯ†)
    (hmor๐’ด : haveI : p๐’ด.IsFibered := h๐’ด
      haveI : p๐’ด'.IsFibered := hs๐’ด'.isFibered
      โˆ€ (V : ๐’ž) (yโ‚ yโ‚‚ : p๐’ด.Fiber V),
        Presheaf.IsLocallyInjective (J.over V) (hj.morPresheafMap yโ‚ yโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over V) (hj.morPresheafMap yโ‚ yโ‚‚))
    (_hobj๐’ด : โˆ€ y' : ๐’ด', โˆƒ R โˆˆ J (p๐’ด'.obj y'), โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ด'.obj y'), R.arrows u โ†’
      โˆƒ (y : ๐’ด) (ฯ† : j.obj y โŸถ y'), p๐’ด'.IsStronglyCartesian u ฯ†)
    (hmor๐’ต : haveI : p๐’ต.IsFibered := h๐’ต
      haveI : p๐’ต'.IsFibered := hs๐’ต'.isFibered
      โˆ€ (V : ๐’ž) (zโ‚ zโ‚‚ : p๐’ต.Fiber V),
        Presheaf.IsLocallyInjective (J.over V) (hk.morPresheafMap zโ‚ zโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over V) (hk.morPresheafMap zโ‚ zโ‚‚))
    (hobj๐’ต : โˆ€ z' : ๐’ต', โˆƒ R โˆˆ J (p๐’ต'.obj z'), โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ต'.obj z'), R.arrows u โ†’
      โˆƒ (z : ๐’ต) (ฯ† : k.obj z โŸถ z'), p๐’ต'.IsStronglyCartesian u ฯ†)
    (ฮฑ : i โ‹™ f' โ‰… f โ‹™ j) (hฮฑ : โˆ€ x : ๐’ณ, p๐’ด'.IsHomLift (๐Ÿ™ (p๐’ณ.obj x)) (ฮฑ.hom.app x))
    (ฮฒ : k โ‹™ g' โ‰… g โ‹™ j) (hฮฒ : โˆ€ z : ๐’ต, p๐’ด'.IsHomLift (๐Ÿ™ (p๐’ต.obj z)) (ฮฒ.hom.app z)) :
    haveI : p๐’ณ.IsFibered := h๐’ณ
    haveI : p๐’ด.IsFibered := h๐’ด
    haveI : p๐’ต.IsFibered := h๐’ต
    haveI : p๐’ณ'.IsFibered := hs๐’ณ'.isFibered
    haveI : p๐’ด'.IsFibered := hs๐’ด'.isFibered
    haveI : p๐’ต'.IsFibered := hs๐’ต'.isFibered
    haveI : (structureFunctor p๐’ณ p๐’ต p๐’ด f g).IsFibered :=
      isFibered_structureFunctor p๐’ณ p๐’ต p๐’ด f g hf hg
    haveI : (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsFibered :=
      isFibered_structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g' hf' hg'
    (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsStack J โˆง
      โˆƒ hH : Functor.IsFibredOneMorphism (structureFunctor p๐’ณ p๐’ต p๐’ด f g)
          (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g') (stackifyMap hi hj hk ฮฑ hฮฑ ฮฒ hฮฒ),
        (โˆ€ (U : ๐’ž) (P Q : (structureFunctor p๐’ณ p๐’ต p๐’ด f g).Fiber U),
            Presheaf.IsLocallyInjective (J.over U) (hH.morPresheafMap P Q) โˆง
              Presheaf.IsLocallySurjective (J.over U) (hH.morPresheafMap P Q)) โˆง
          โˆ€ P' : TwoFibreProductOver p๐’ณ' p๐’ต' p๐’ด' f' g', โˆƒ R โˆˆ J P'.base,
            โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ P'.base), R.arrows u โ†’
              โˆƒ (P : TwoFibreProductOver p๐’ณ p๐’ต p๐’ด f g)
                (ฮฆ : (stackifyMap hi hj hk ฮฑ hฮฑ ฮฒ hฮฒ).obj P โŸถ P'),
                (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsStronglyCartesian u ฮฆ
Tag 06NS, a lemma

Tag 06NS in the Stacks Project.

CategoryTheory.RelativeInertia.isStackification_functoriality, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/FiberedCategory/InertiaStackification.lean, line 1333.

The stackification of the inertia is the inertia of the stackification. Let (๐’ž, J) be a site, let p : ๐’ณ โฅค ๐’ž be a fibred category over ๐’ž and let G : ๐’ณ โฅค ๐’ณ' be the stackification of ๐’ณ (Stacks 02ZN): a 1-morphism hG of fibred categories over ๐’ž whose target p' is a stack, such that (hmor) for every U and all x, y in ๐’ณ_U the induced map Mor(x, y) โŸถ Mor(G x, G y) of presheaves on ๐’ž/U is locally injective and locally surjective, its target being a sheaf, and such that (hobj) every object x' of ๐’ณ' admits a covering sieve R of p'.obj x' with x'|_V in the essential image of ๐’ณ_V โฅค ๐’ณ'_V for every f : V โŸถ p'.obj x' in R.

Then the inertia I_{๐’ณ'} is a stack over ๐’ž, and the functoriality 1-morphism I_G : I_๐’ณ โฅค I_{๐’ณ'}, (x, ฮฑ) โ†ฆ (G x, G ฮฑ), is a stackification of the inertia I_๐’ณ: it is a 1-morphism of fibred categories over ๐’ž and it satisfies the same two conditions.

public theorem RelativeInertia.isStackification_functoriality
    {p : ๐’ณ โฅค ๐’ž} {p' : ๐’ณ' โฅค ๐’ž} {G : ๐’ณ โฅค ๐’ณ'} {J : GrothendieckTopology ๐’ž} [p.IsFibered]
    (hG : p.IsFibredOneMorphism p' G) (hp' : p'.IsStack J)
    (hmor : haveI : p'.IsFibered := hp'.isFibered
      โˆ€ (U : ๐’ž) (x y : p.Fiber U),
        Presheaf.IsLocallyInjective (J.over U)
            (Functor.IsFibredOneMorphism.morPresheafMap hG x y) โˆง
          Presheaf.IsLocallySurjective (J.over U)
            (Functor.IsFibredOneMorphism.morPresheafMap hG x y))
    (hobj : โˆ€ x' : ๐’ณ', โˆƒ R โˆˆ J (p'.obj x'), โˆ€ โฆƒV : ๐’žโฆ„ (f : V โŸถ p'.obj x'), R f โ†’
      โˆƒ (y : ๐’ณ) (ฯ† : G.obj y โŸถ x'), p'.IsStronglyCartesian f ฯ†) :
    haveI : p'.IsFibered := hp'.isFibered
    haveI : (RelativeInertia.toBase p).IsFibered :=
      RelativeInertia.isFibered p p (๐Ÿญ ๐’ž) inferInstance (Functor.isFibredOneMorphism_id p)
    haveI : (RelativeInertia.toBase p').IsFibered :=
      RelativeInertia.isFibered p' p' (๐Ÿญ ๐’ž) hp'.isFibered (Functor.isFibredOneMorphism_id p')
    (RelativeInertia.toBase p').IsStack J โˆง
      โˆƒ hIG : (RelativeInertia.toBase p).IsFibredOneMorphism (RelativeInertia.toBase p')
          (RelativeInertia.functoriality p p' G hG.comp_eq),
        (โˆ€ (U : ๐’ž) (A B : (RelativeInertia.toBase p).Fiber U),
            Presheaf.IsLocallyInjective (J.over U)
                (Functor.IsFibredOneMorphism.morPresheafMap hIG A B) โˆง
              Presheaf.IsLocallySurjective (J.over U)
                (Functor.IsFibredOneMorphism.morPresheafMap hIG A B)) โˆง
          โˆ€ A' : RelativeInertia p', โˆƒ R โˆˆ J ((RelativeInertia.toBase p').obj A'),
            โˆ€ โฆƒV : ๐’žโฆ„ (f : V โŸถ (RelativeInertia.toBase p').obj A'), R f โ†’
              โˆƒ (A : RelativeInertia p)
                (ฯ† : (RelativeInertia.functoriality p p' G hG.comp_eq).obj A โŸถ A'),
                (RelativeInertia.toBase p').IsStronglyCartesian f ฯ†
Sources

Section8.9 Stackification of categories fibred in groupoids#

Section 8.9 of the Stacks Project, Tag 02ZO. 3 tags here are carried by 9 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 02ZP, a lemma

Tag 02ZP in the Stacks Project.

CategoryTheory.Functor.Stackification.isFiberedInGroupoids_of_isStackification, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/GroupoidStackification.lean, line 255.

Stacks 02ZP. Let (๐’ž, J) be a site, let p : ๐’ฎ โฅค ๐’ž be a category fibred in groupoids and let G : ๐’ฎ โฅค ๐’ฎ' exhibit the stack p' : ๐’ฎ' โฅค ๐’ž as the stackification of the fibred category underlying ๐’ฎ โ€” that is, let G be a 1-morphism of fibred categories over ๐’ž satisfying the two clauses of Stacks 02ZN. Then p' is fibred in groupoids.

This is the whole content of Stacks 02ZP over Stacks 02ZN: the source runs the same construction and observes that it lands in groupoid fibres. The statement is conditional on being given the stackification, the construction of Stacks 02ZN not being assembled in the tree yet; once it is, it supplies hsp', hG, hmor and hobj.

By Stacks 003V it suffices that every fibre of ๐’ฎ' be a groupoid, which is CategoryTheory.Functor.Stackification.isGroupoid_fiber.

theorem isFiberedInGroupoids_of_isStackification : p'.IsFiberedInGroupoids

CategoryTheory.Functor.Stackification.isStackInGroupoids_of_isStackification, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/GroupoidStackification.lean, line 267.

Stacks 02ZP, as the source states it: ๐’ฎ' is a stack in groupoids. The IsStack half is the hypothesis hsp' and the IsFiberedInGroupoids half is CategoryTheory.Functor.Stackification.isFiberedInGroupoids_of_isStackification; together with hmor and hobj, which are the two clauses of the source's statement carried unchanged from hypothesis to conclusion, this says that the given G exhibits ๐’ฎ' as the stackification of ๐’ฎ in groupoids.

theorem isStackInGroupoids_of_isStackification :
    p'.IsFiberedInGroupoids โˆง p'.IsStack J

CategoryTheory.Functor.Stackification.nonempty_isEquivalenceOver_of_locally_fullyFaithful, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/Uniqueness.lean, line 161. The attribute's comment: โ€œthe determinacy half of the statement โ€” ๐’ฎ' is determined up to 2-isomorphism by clauses (1) and (2) โ€” read as: a 1-morphism from a stackification into a stack whose composite with the stackification again satisfies the two clauses is an equivalence over the site. The existence half is the construction of Stacks 02ZN, not assembled in the tree; the uniqueness of the 2-isomorphism is Stacks 04W9, CategoryTheory.Functor.Stackification.restrict_isEquivalence; and the groupoid half of 02ZP is CategoryTheory.Functor.Stackification.isStackInGroupoids_of_isStackificationโ€.

The determinacy clause of Stacks 02ZN and 02ZP, in the form a consumer uses. Let G : ๐’œ โฅค โ„ฌ exhibit the stack p' as the stackification of the fibred category p โ€” that is, let it satisfy the two clauses hGmor and hGobj โ€” and let H : โ„ฌ โฅค ๐’ณ be a 1-morphism of fibred categories into a stack q. If the composite G โ‹™ H satisfies the same two clauses, then H is an equivalence of p' with q over ๐’ž.

So two stackifications of one fibred category have equivalent targets, and the comparison realising the equivalence is any 1-morphism between them compatible with the two presentations. The two clauses, which for a given stackification are hypotheses carried to the conclusion by CategoryTheory.Functor.Stackification.isStackInGroupoids_of_isStackification, thereby become a criterion on G โ‹™ H.

H is fully faithful by CategoryTheory.Functor.Stackification.full_of_extension and .faithful_of_extension, Stacks 04WQ for a 1-morphism out of a stackification, whose hypotheses are precisely the clauses on G and on the composite. It is locally essentially surjective on fibres because G โ‹™ H is, a local preimage under the composite being one under H. Stacks 046N, CategoryTheory.Functor.isEquivalenceOver_iff_locallyEssSurjOnFibers, then concludes.

theorem nonempty_isEquivalenceOver_of_locally_fullyFaithful :
    Nonempty (IsEquivalenceOver p' q H)

CategoryTheory.Functor.Stackification.nonempty_isEquivalenceOver_extend, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/Uniqueness.lean, line 264. The attribute's comment: โ€œthe determinacy half of the statement โ€” ๐’ฎ' is determined up to 2-isomorphism by clauses (1) and (2) โ€” for the canonical extension: a 1-morphism into a stack satisfying the two clauses exhibits that stack as the stackification, so the extension of Stacks 0435 is an equivalence over the site. The existence half is the construction of Stacks 02ZN, not assembled in the tree; the uniqueness of the 2-isomorphism is Stacks 04W9, CategoryTheory.Functor.Stackification.restrict_isEquivalence; and the groupoid half of 02ZP is CategoryTheory.Functor.Stackification.isStackInGroupoids_of_isStackificationโ€.

A stackification is determined up to 2-isomorphism: the "moreover" of Stacks 02ZN, repeated by Stacks 02ZP. Let G : ๐’œ โฅค โ„ฌ exhibit the stack p' as the stackification of the fibred category p, and let F : ๐’œ โฅค ๐’ณ be a 1-morphism into a stack q satisfying the same two clauses โ€” hFmor, that the induced maps of morphism presheaves are locally bijective, and hFobj, that every object of a fibre of q is locally in the essential image of F on fibres. Then the extension of F along G supplied by the universal property, Stacks 0435, is an equivalence of p' with q over ๐’ž.

So a 1-morphism satisfying the two clauses does not merely land in a stack: it exhibits its target as the stackification. The extension is compatible with the two presentations by CategoryTheory.Functor.Stackification.unit, which is the 2-isomorphism G โ‹™ H โ‰… F, so the equivalence identifies the two presentations and not just the two targets.

theorem nonempty_isEquivalenceOver_extend :
    Nonempty (IsEquivalenceOver p' q
      (extend hG hF hGmor hq.isMorSheaf hGobj hq.hasEffectiveDescent))
Tag 0436, a lemma

Tag 0436 in the Stacks Project.

CategoryTheory.Functor.Stackification.extendGroupoid, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyGroupoid.lean, line 81.

Let (๐’ž, J) be a site, let p : ๐’ฎ โฅค ๐’ž be a category fibred in groupoids, let G : ๐’ฎ โฅค ๐’ฎ' exhibit the stack in groupoids p' as the stackification of ๐’ฎ, and let F : ๐’ฎ โฅค ๐’ณ be a 1-morphism of categories over ๐’ž into a stack in groupoids. This is the extension H : ๐’ฎ' โฅค ๐’ณ of F along G.

noncomputable def extendGroupoid : ๐’ฎ' โฅค ๐’ณ

CategoryTheory.Functor.Stackification.extendGroupoid_comp_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyGroupoid.lean, line 90.

The extension H : ๐’ฎ' โฅค ๐’ณ is strictly over ๐’ž: H โ‹™ q = p'.

theorem extendGroupoid_comp_eq :
    extendGroupoid hp hp' hsp' hq hsq hG hF hmor hobj โ‹™ q = p'

CategoryTheory.Functor.Stackification.unitGroupoid, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyGroupoid.lean, line 107.

The 2-isomorphism G โ‹™ H โ‰… F between F and the composite of G with its extension.

noncomputable def unitGroupoid :
    G โ‹™ extendGroupoid hp hp' hsp' hq hsq hG hF hmor hobj โ‰… F

CategoryTheory.Functor.Stackification.isHomLift_unitGroupoid_app, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/UniversalPropertyGroupoid.lean, line 117.

Every component of the 2-isomorphism G โ‹™ H โ‰… F lies over an identity morphism of ๐’ž.

lemma isHomLift_unitGroupoid_app (A : ๐’ฎ) :
    q.IsHomLift (๐Ÿ™ (p.obj A)) ((unitGroupoid hp hp' hsp' hq hsq hG hF hmor hobj).hom.app A)
Tag 04Y2, a lemma

Tag 04Y2 in the Stacks Project.

CategoryTheory.TwoFibreProductOver.isStackification_of_isStackification, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stackification/TwoFibreProductGroupoid/IsStackification.lean, line 353.

Stacks 04Y2. Let (๐’ž, J) be a site, let f : ๐’ณ โฅค ๐’ด and g : ๐’ต โฅค ๐’ด be 1-morphisms of categories fibred in groupoids over ๐’ž, let i : ๐’ณ โฅค ๐’ณ', j : ๐’ด โฅค ๐’ด', k : ๐’ต โฅค ๐’ต' be stackifications (Stacks 02ZP: the targets are stacks in groupoids, the induced maps Mor(x, y) โŸถ Mor(i x, i y) of presheaves on ๐’ž/U are locally bijective, and every object of the target is locally in the essential image), and let f' : ๐’ณ' โฅค ๐’ด', g' : ๐’ต' โฅค ๐’ด' be 1-morphisms over ๐’ž 2-commuting with f and g along i, j, k via vertical 2-isomorphisms ฮฑ, ฮฒ. Then the stackification of the 2-fibre product is the 2-fibre product of the stackifications: the 2-fibre product ๐’ณ' ร—_{๐’ด'} ๐’ต' is a stack over (๐’ž, J) โ€” a stack in groupoids, being fibred in groupoids by Stacks 0041 โ€” and every canonical 1-morphism H : ๐’ณ ร—_๐’ด ๐’ต โฅค ๐’ณ' ร—_{๐’ด'} ๐’ต', that is every morphism of the two 2-commutative squares, is a 1-morphism of fibred categories over ๐’ž which is a stackification of ๐’ณ ร—_๐’ด ๐’ต, in the same two clauses.

public theorem isStackification_of_isStackification {J : GrothendieckTopology ๐’ž} {p๐’ณ : ๐’ณ โฅค ๐’ž}
    {p๐’ด : ๐’ด โฅค ๐’ž} {p๐’ต : ๐’ต โฅค ๐’ž} {p๐’ณ' : ๐’ณ' โฅค ๐’ž} {p๐’ด' : ๐’ด' โฅค ๐’ž} {p๐’ต' : ๐’ต' โฅค ๐’ž}
    (h๐’ณ : p๐’ณ.IsFiberedInGroupoids) (h๐’ด : p๐’ด.IsFiberedInGroupoids) (h๐’ต : p๐’ต.IsFiberedInGroupoids)
    (h๐’ณ' : p๐’ณ'.IsFiberedInGroupoids) (h๐’ด' : p๐’ด'.IsFiberedInGroupoids)
    (h๐’ต' : p๐’ต'.IsFiberedInGroupoids) (hs๐’ณ' : p๐’ณ'.IsStack J) (hs๐’ด' : p๐’ด'.IsStack J)
    (hs๐’ต' : p๐’ต'.IsStack J) {f : ๐’ณ โฅค ๐’ด} {g : ๐’ต โฅค ๐’ด} (hf : f โ‹™ p๐’ด = p๐’ณ) (hg : g โ‹™ p๐’ด = p๐’ต)
    {f' : ๐’ณ' โฅค ๐’ด'} {g' : ๐’ต' โฅค ๐’ด'} (hf' : f' โ‹™ p๐’ด' = p๐’ณ') (hg' : g' โ‹™ p๐’ด' = p๐’ต') {i : ๐’ณ โฅค ๐’ณ'}
    {j : ๐’ด โฅค ๐’ด'} {k : ๐’ต โฅค ๐’ต'} (hi : i โ‹™ p๐’ณ' = p๐’ณ) (hj : j โ‹™ p๐’ด' = p๐’ด) (hk : k โ‹™ p๐’ต' = p๐’ต)
    (hmor๐’ณ :
      haveI : p๐’ณ.IsFibered := h๐’ณ.isFibered
      haveI : p๐’ณ'.IsFibered := h๐’ณ'.isFibered
      โˆ€ (U : ๐’ž) (xโ‚ xโ‚‚ : p๐’ณ.Fiber U),
        Presheaf.IsLocallyInjective (J.over U)
            ((h๐’ณ'.isFibredOneMorphism hi).morPresheafMap xโ‚ xโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over U)
            ((h๐’ณ'.isFibredOneMorphism hi).morPresheafMap xโ‚ xโ‚‚))
    (hobj๐’ณ :
      โˆ€ x' : ๐’ณ',
        โˆƒ R โˆˆ J (p๐’ณ'.obj x'),
          โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ณ'.obj x'),
            R u โ†’ โˆƒ (x : ๐’ณ) (ฯ† : i.obj x โŸถ x'), p๐’ณ'.IsStronglyCartesian u ฯ†)
    (hmor๐’ด :
      haveI : p๐’ด.IsFibered := h๐’ด.isFibered
      haveI : p๐’ด'.IsFibered := h๐’ด'.isFibered
      โˆ€ (U : ๐’ž) (yโ‚ yโ‚‚ : p๐’ด.Fiber U),
        Presheaf.IsLocallyInjective (J.over U)
            ((h๐’ด'.isFibredOneMorphism hj).morPresheafMap yโ‚ yโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over U)
            ((h๐’ด'.isFibredOneMorphism hj).morPresheafMap yโ‚ yโ‚‚))
    (_hobj๐’ด :
      โˆ€ y' : ๐’ด',
        โˆƒ R โˆˆ J (p๐’ด'.obj y'),
          โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ด'.obj y'),
            R u โ†’ โˆƒ (y : ๐’ด) (ฯ† : j.obj y โŸถ y'), p๐’ด'.IsStronglyCartesian u ฯ†)
    (hmor๐’ต :
      haveI : p๐’ต.IsFibered := h๐’ต.isFibered
      haveI : p๐’ต'.IsFibered := h๐’ต'.isFibered
      โˆ€ (U : ๐’ž) (zโ‚ zโ‚‚ : p๐’ต.Fiber U),
        Presheaf.IsLocallyInjective (J.over U)
            ((h๐’ต'.isFibredOneMorphism hk).morPresheafMap zโ‚ zโ‚‚) โˆง
          Presheaf.IsLocallySurjective (J.over U)
            ((h๐’ต'.isFibredOneMorphism hk).morPresheafMap zโ‚ zโ‚‚))
    (hobj๐’ต :
      โˆ€ z' : ๐’ต',
        โˆƒ R โˆˆ J (p๐’ต'.obj z'),
          โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ p๐’ต'.obj z'),
            R u โ†’ โˆƒ (z : ๐’ต) (ฯ† : k.obj z โŸถ z'), p๐’ต'.IsStronglyCartesian u ฯ†)
    (ฮฑ : i โ‹™ f' โ‰… f โ‹™ j) (hฮฑ : โˆ€ x : ๐’ณ, p๐’ด'.IsHomLift (๐Ÿ™ (p๐’ณ.obj x)) (ฮฑ.hom.app x))
    (ฮฒ : k โ‹™ g' โ‰… g โ‹™ j) (hฮฒ : โˆ€ z : ๐’ต, p๐’ด'.IsHomLift (๐Ÿ™ (p๐’ต.obj z)) (ฮฒ.hom.app z))
    {H : TwoFibreProductOver p๐’ณ p๐’ต p๐’ด f g โฅค TwoFibreProductOver p๐’ณ' p๐’ต' p๐’ด' f' g'}
    (ฮณ : H โ‹™ fst p๐’ณ' p๐’ต' p๐’ด' f' g' โ‰… fst p๐’ณ p๐’ต p๐’ด f g โ‹™ i)
    (hฮณ : โˆ€ P : TwoFibreProductOver p๐’ณ p๐’ต p๐’ด f g, p๐’ณ'.IsHomLift (๐Ÿ™ P.base) (ฮณ.hom.app P))
    (ฮด : H โ‹™ snd p๐’ณ' p๐’ต' p๐’ด' f' g' โ‰… snd p๐’ณ p๐’ต p๐’ด f g โ‹™ k)
    (hฮด : โˆ€ P : TwoFibreProductOver p๐’ณ p๐’ต p๐’ด f g, p๐’ต'.IsHomLift (๐Ÿ™ P.base) (ฮด.hom.app P))
    (hฯˆ :
      Functor.whiskerLeft H (psi p๐’ณ' p๐’ต' p๐’ด' f' g') โ‰ซ Functor.whiskerRight ฮด.hom g' =
        Functor.whiskerRight ฮณ.hom f' โ‰ซ
          Functor.whiskerLeft (fst p๐’ณ p๐’ต p๐’ด f g) ฮฑ.hom โ‰ซ
          Functor.whiskerRight (psi p๐’ณ p๐’ต p๐’ด f g) j โ‰ซ
          Functor.whiskerLeft (snd p๐’ณ p๐’ต p๐’ด f g) ฮฒ.inv) :
    haveI : (structureFunctor p๐’ณ p๐’ต p๐’ด f g).IsFibered :=
      (isFiberedInGroupoids p๐’ณ p๐’ต p๐’ด f g h๐’ณ h๐’ต h๐’ด hf hg).isFibered
    haveI : (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsFibered :=
      (isFiberedInGroupoids p๐’ณ' p๐’ต' p๐’ด' f' g' h๐’ณ' h๐’ต' h๐’ด' hf' hg').isFibered
    (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsStack J โˆง
      โˆƒ hH :
        Functor.IsFibredOneMorphism (structureFunctor p๐’ณ p๐’ต p๐’ด f g)
          (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g') H,
        (โˆ€ (U : ๐’ž) (P Q : (structureFunctor p๐’ณ p๐’ต p๐’ด f g).Fiber U),
            Presheaf.IsLocallyInjective (J.over U) (hH.morPresheafMap P Q) โˆง
              Presheaf.IsLocallySurjective (J.over U) (hH.morPresheafMap P Q)) โˆง
          โˆ€ P' : TwoFibreProductOver p๐’ณ' p๐’ต' p๐’ด' f' g',
            โˆƒ R โˆˆ J P'.base,
              โˆ€ โฆƒV : ๐’žโฆ„ (u : V โŸถ P'.base),
                R u โ†’
                  โˆƒ (P : TwoFibreProductOver p๐’ณ p๐’ต p๐’ด f g) (ฯ† : H.obj P โŸถ P'),
                    (structureFunctor p๐’ณ' p๐’ต' p๐’ด' f' g').IsStronglyCartesian u ฯ†
Sources

Section8.10 Inherited topologies#

Section 8.10 of the Stacks Project, Tag 06NT. 6 tags here are carried by 15 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 06NU, a lemma

Tag 06NU in the Stacks Project.

CategoryTheory.Functor.inheritedPrecoverage_hasIsos, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/InheritedSite.lean, line 137. The attribute's comment: โ€œAxiom (1): isomorphisms cover.โ€.

Stacks 06NU, axiom (1) of a site: a family consisting of a single isomorphism of ๐’ฎ is a covering, because an isomorphism is strongly cartesian and its image is an isomorphism of ๐’ž.

instance inheritedPrecoverage_hasIsos [Precoverage.HasIsos K] :
    Precoverage.HasIsos (p.inheritedPrecoverage K)

CategoryTheory.Functor.inheritedPrecoverage_isStableUnderComposition, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/InheritedSite.lean, line 150. The attribute's comment: โ€œAxiom (2): coverings are stable under composition.โ€.

Stacks 06NU, axiom (2) of a site: refining a covering by coverings again gives a covering, because a composition of strongly cartesian morphisms is strongly cartesian (Stacks 02XL) and the images compose to a covering of ๐’ž.

instance inheritedPrecoverage_isStableUnderComposition
    [Precoverage.IsStableUnderComposition K] :
    Precoverage.IsStableUnderComposition (p.inheritedPrecoverage K)

CategoryTheory.Functor.inheritedPrecoverage_hasPullbacks, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/InheritedSite.lean, line 173. The attribute's comment: โ€œAxiom (3), existence of the fibre products.โ€.

Stacks 06NU, the existence half of axiom (3) of a site: given a covering { x i โŸถ x } of ๐’ฎ and a morphism y โŸถ x, the fibre products x i ร—_x y exist. This is Stacks 06N5, applied to the strongly cartesian morphism x i โŸถ x and the fibre product of the images, which exists in ๐’ž.

instance inheritedPrecoverage_hasPullbacks [p.IsFibered] [HasPullbacks ๐’ž] :
    (p.inheritedPrecoverage K).HasPullbacks

CategoryTheory.Functor.inheritedPrecoverage_isStableUnderBaseChange, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/InheritedSite.lean, line 184. The attribute's comment: โ€œAxiom (3), the base change of a covering is a covering.โ€.

Stacks 06NU, the covering half of axiom (3) of a site: the family of projections { x i ร—_x y โŸถ y } of a covering { x i โŸถ x } along y โŸถ x is again a covering. Both conditions transfer from { x i โŸถ x } by the two base-change lemmas above.

instance inheritedPrecoverage_isStableUnderBaseChange [p.IsFibered] [HasPullbacks ๐’ž]
    [Precoverage.IsStableUnderBaseChange K] :
    Precoverage.IsStableUnderBaseChange (p.inheritedPrecoverage K)
Tag 06NV, a definition

Tag 06NV in the Stacks Project.

CategoryTheory.Functor.inheritedTopology, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/InheritedSite.lean, line 207.

The Grothendieck topology on a fibred category p : ๐’ฎ โฅค ๐’ž inherited from a topology J on the base: the topology generated by the collection CategoryTheory.Functor.inheritedPrecoverage of Stacks 06NU, whose covering families are the families of strongly p-cartesian morphisms whose family of images covers in (๐’ž, J).

def inheritedTopology (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) : GrothendieckTopology ๐’ฎ
Tag 06NW, a lemma

Tag 06NW in the Stacks Project.

CategoryTheory.Functor.IsFibredOneMorphism.isContinuous_and_isCocontinuous_inheritedTopology, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 179.

Let (๐’ž, J) be a site and let F : ๐’ณ โฅค ๐’ด be a 1-morphism of fibred categories over ๐’ž (Stacks 02XP), so that F โ‹™ q = p and F preserves strongly cartesian morphisms. Then F is a continuous and a cocontinuous functor between the topologies that ๐’ณ and ๐’ด inherit from ๐’ž (Stacks 06NV).

public theorem IsFibredOneMorphism.isContinuous_and_isCocontinuous_inheritedTopology
    [HasPullbacks ๐’ž] (J : GrothendieckTopology ๐’ž) {p : ๐’ณ โฅค ๐’ž} {q : ๐’ด โฅค ๐’ž} {F : ๐’ณ โฅค ๐’ด}
    [p.IsFibered] [q.IsFibered] (hF : p.IsFibredOneMorphism q F) :
    F.IsContinuous (p.inheritedTopology J) (q.inheritedTopology J) โˆง
      F.IsCocontinuous (p.inheritedTopology J) (q.inheritedTopology J)

CategoryTheory.Functor.IsFibredOneMorphism.inverseImageCompSheafToPresheafIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 265.

The inverse image of the morphism of topoi induced by a 1-morphism of fibred categories is plain restriction along F.op: as a functor to presheaves on ๐’ณ it is sheafToPresheaf followed by precomposition with F.op, with no sheafification intervening.

def IsFibredOneMorphism.inverseImageCompSheafToPresheafIso :
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).1
    F.sheafPushforwardContinuous A (p.inheritedTopology J) (q.inheritedTopology J) โ‹™
        sheafToPresheaf (p.inheritedTopology J) A โ‰…
      sheafToPresheaf (q.inheritedTopology J) A โ‹™ (whiskeringLeft _ _ _).obj F.op

CategoryTheory.Functor.IsFibredOneMorphism.inverseImage_obj_obj_obj, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 276.

The formula fโปยน(๐’ข)(x) = ๐’ข(F x): the sections of the inverse image of a sheaf ๐’ข on ๐’ด over an object x of ๐’ณ are the sections of ๐’ข over F x.

theorem IsFibredOneMorphism.inverseImage_obj_obj_obj :
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).1
    โˆ€ (๐’ข : Sheaf (q.inheritedTopology J) A) (x : ๐’ณ),
      ((F.sheafPushforwardContinuous A (p.inheritedTopology J)
            (q.inheritedTopology J)).obj ๐’ข).obj.obj (Opposite.op x) =
        ๐’ข.obj.obj (Opposite.op (F.obj x))

CategoryTheory.Functor.IsFibredOneMorphism.preservesFiniteLimits_inverseImage, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 288.

The inverse image fโปยน of the morphism of topoi induced by a 1-morphism of fibred categories preserves finite limits.

theorem IsFibredOneMorphism.preservesFiniteLimits_inverseImage [HasFiniteLimits A] :
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).1
    PreservesFiniteLimits (F.sheafPushforwardContinuous A (p.inheritedTopology J)
      (q.inheritedTopology J))

CategoryTheory.Functor.IsFibredOneMorphism.directImageCompSheafToPresheafIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 305.

The direct image of the morphism of topoi is the right Kan extension along F.op, taken on sheaves: as a functor to presheaves on ๐’ด it is sheafToPresheaf followed by F.op.ran.

noncomputable def IsFibredOneMorphism.directImageCompSheafToPresheafIso
    [โˆ€ (G : ๐’ณแต’แต– โฅค A), F.op.HasPointwiseRightKanExtension G] :
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).2
    F.sheafPushforwardCocontinuous A (p.inheritedTopology J) (q.inheritedTopology J) โ‹™
        sheafToPresheaf (q.inheritedTopology J) A โ‰…
      sheafToPresheaf (p.inheritedTopology J) A โ‹™ F.op.ran

CategoryTheory.Functor.IsFibredOneMorphism.sheafAdjunctionInheritedTopology, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Functoriality.lean, line 319.

The morphism of topoi f : Sh(๐’ณ) โŸถ Sh(๐’ด) induced by a 1-morphism of fibred categories F, as the adjunction fโปยน โŠฃ f_* between the two inherited sites, with fโปยน the restriction F.sheafPushforwardContinuous and f_* the right Kan extension F.sheafPushforwardCocontinuous.

noncomputable def IsFibredOneMorphism.sheafAdjunctionInheritedTopology
    [โˆ€ (G : ๐’ณแต’แต– โฅค A), F.op.HasPointwiseRightKanExtension G] :
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).1
    letI := (hF.isContinuous_and_isCocontinuous_inheritedTopology J).2
    F.sheafPushforwardContinuous A (p.inheritedTopology J) (q.inheritedTopology J) โŠฃ
      F.sheafPushforwardCocontinuous A (p.inheritedTopology J) (q.inheritedTopology J)
Tag 0CN0, a lemma

Tag 0CN0 in the Stacks Project.

CategoryTheory.Functor.IsFiberedInGroupoids.isEquivalence_overPost, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Localization.lean, line 114. The attribute's comment: โ€œthe equivalence of categories ๐’ณ/x โฅค ๐’ž/Uโ€.

For p : ๐’ณ โฅค ๐’ž fibred in groupoids and x an object of ๐’ณ, the functor Over.post p : ๐’ณ/x โฅค ๐’ž/p x induced by p is an equivalence of categories.

theorem IsFiberedInGroupoids.isEquivalence_overPost (hp : p.IsFiberedInGroupoids) (x : ๐’ณ) :
    (Over.post (X := x) p).IsEquivalence

CategoryTheory.Functor.IsInheritedTopology.mem_over_iff_functorPushforward, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Localization.lean, line 153. The attribute's comment: โ€œcoverings of x' in ๐’ณ/x correspond to coverings of p x' in ๐’ž/Uโ€.

For p fibred in groupoids and J๐’ณ inherited from (๐’ž, J), a sieve on an object of ๐’ณ/x is covering for the topology that J๐’ณ induces on ๐’ณ/x exactly when its image under Over.post p is covering for the topology that J induces on ๐’ž/p x.

theorem IsInheritedTopology.mem_over_iff_functorPushforward (hp : p.IsFiberedInGroupoids)
    {J : GrothendieckTopology ๐’ž} {J๐’ณ : GrothendieckTopology ๐’ณ}
    (hJ : _root_.CategoryTheory.Functor.IsInheritedTopology.{max uโ‚‚ vโ‚‚} p J J๐’ณ)
    {x : ๐’ณ} (Y : Over x) (S : Sieve Y) :
    S โˆˆ (J๐’ณ.over x) Y โ†”
      Sieve.functorPushforward (Over.post p) S โˆˆ
        (J.over (p.obj x)) ((Over.post (X := x) p).obj Y)
Tag 06NX, a lemma

Tag 06NX in the Stacks Project.

CategoryTheory.Functor.isStackInGroupoids_of_isFiberedInGroupoids, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/Basic.lean, line 35.

Let (๐’ž, J) be a site, let p : ๐’ณ โฅค ๐’ž and q : ๐’ด โฅค ๐’ž be stacks in groupoids over ๐’ž and let F : ๐’ณ โฅค ๐’ด be a 1-morphism of categories over ๐’ž, that is F โ‹™ q = p. If F makes ๐’ณ a category fibred in groupoids over ๐’ด, then ๐’ณ is a stack in groupoids over ๐’ด for the topology J๐’ด inherited from (๐’ž, J).

theorem isStackInGroupoids_of_isFiberedInGroupoids
    (J : GrothendieckTopology ๐’ž) (J๐’ด : GrothendieckTopology ๐’ด)
    (p : ๐’ณ โฅค ๐’ž) (q : ๐’ด โฅค ๐’ž) (F : ๐’ณ โฅค ๐’ด)
    (hp : IsStackInGroupoids.{w} p J) (hq : IsStackInGroupoids.{w} q J)
    (hFโ‚ : F โ‹™ q = p)
    (hFโ‚‚ : F.IsFiberedInGroupoids)
    (hJ๐’ด : IsInheritedTopology.{w} q J J๐’ด) :
    IsStackInGroupoids.{w} F J๐’ด
Tag 09WX, a lemma

Tag 09WX in the Stacks Project.

CategoryTheory.Functor.isStack_comp_of_isInheritedTopology, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/InheritedTopology/StackOverStack/IsStack.lean, line 315.

Let (๐’ž, J) be a site, let p : ๐’ณ โฅค ๐’ž be a stack over ๐’ž, endow ๐’ณ with the topology J๐’ณ inherited from (๐’ž, J) and let q : ๐’ด โฅค ๐’ณ be a stack over (๐’ณ, J๐’ณ). Then ๐’ด is a stack over ๐’ž, along q โ‹™ p; and if p and q define stacks in groupoids, that is if both are fibred in groupoids, then ๐’ด is a stack in groupoids over ๐’ž.

public theorem isStack_comp_of_isInheritedTopology (hp : p.IsStack J)
    (hJ๐’ณ : IsInheritedTopology.{max uโ‚‚ vโ‚‚} p J J๐’ณ) (hq : q.IsStack J๐’ณ) :
    (q โ‹™ p).IsStack J โˆง
      (p.IsFiberedInGroupoids โ†’
        q.IsFiberedInGroupoids โ†’ (q โ‹™ p).IsFiberedInGroupoids โˆง (q โ‹™ p).IsStack J)
Sources

Section8.11 Gerbes#

Section 8.11 of the Stacks Project, Tag 06NY. 8 tags here are carried by 10 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 06NZ, a definition

Tag 06NZ in the Stacks Project.

CategoryTheory.Functor.IsGerbe, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Defs.lean, line 58.

A gerbe over the site (๐’ž, J) is a category p : ๐’ฎ โฅค ๐’ž over ๐’ž which is a stack in groupoids over ๐’ž (Stacks 02ZI), locally nonempty, and locally connected.

def IsGerbe (p : ๐’ฎ โฅค ๐’ž) (J : GrothendieckTopology ๐’ž) : Prop
Tag 06P0, a lemma

Tag 06P0 in the Stacks Project.

CategoryTheory.isGerbeOver_iff_of_isEquivalenceOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Equivalence.lean, line 296.

Stacks 06P0, in the relative form: a 1-morphism over ๐’ด that is an equivalence over ๐’ด makes ๐’ณ a gerbe over ๐’ด exactly when its target is one. The source statement is the case ๐’ด = ๐’ž, q = ๐Ÿญ ๐’ž, where IsGerbeOver J (๐Ÿญ ๐’ž) ยท is being a gerbe over the site (๐’ž, J) by isGerbeOver_id_iff and being an equivalence over ๐’ด is being an equivalence over ๐’ž.

theorem isGerbeOver_iff_of_isEquivalenceOver {J : GrothendieckTopology ๐’ž} {q : ๐’ด โฅค ๐’ž}
    {F : ๐’ณ โฅค ๐’ด} {F' : ๐’ณ' โฅค ๐’ด} {a : ๐’ณ โฅค ๐’ณ'} (ha : a โ‹™ F' = F)
    (e : Functor.IsEquivalenceOver F F' a) :
    IsGerbeOver J q F โ†” IsGerbeOver J q F'
Tag 06P1, a lemma

Tag 06P1 in the Stacks Project.

CategoryTheory.isGerbe_of_factorization_iff_isGerbeOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/WhenGerbe.lean, line 322.

Stacks 06P1. Let (๐’ž, J) be a site, let q : ๐’ด โฅค ๐’ž and F โ‹™ q : ๐’ณ โฅค ๐’ž be stacks in groupoids over ๐’ž and let J๐’ด be the topology on ๐’ด inherited from (๐’ž, J). Let F = a โ‹™ F' be a factorization of F through an equivalence a over ๐’ž with F' fibred in groupoids โ€” a factorization of exactly the kind Stacks 06N7 produces. Then clause (1) of Stacks 06P1 โ€” that F' is a gerbe over the site (๐’ด, J๐’ด) โ€” holds exactly when clause (2) does, that is exactly when IsGerbeOver J q F.

Since the right-hand side does not mention the factorization, this also says that clause (1) holds for one such factorization exactly when it holds for every one, which is the source's parenthesis "for some (equivalently any)".

The equivalence a is asked to be an equivalence over ๐’ž, as the source asks and as Stacks 06N7 delivers, not over ๐’ด: CategoryTheory.isGerbeOver_iff_of_isEquivalenceOver, the relative Stacks 06P0, assumes the latter, and 06N7's factorization does not satisfy it โ€” see StacksFrontier.CategoryTheory.Sites.Gerbe.BaseEquivalence, which supplies the version used here.

theorem isGerbe_of_factorization_iff_isGerbeOver {๐’ณ' : Type uโ‚„} [Category.{vโ‚„} ๐’ณ']
    {F' : ๐’ณ' โฅค ๐’ด} {a : ๐’ณ โฅค ๐’ณ'} (ha : a โ‹™ F' = F)
    (e : Functor.IsEquivalenceOver (F โ‹™ q) (F' โ‹™ q) a)
    (hp' : Functor.IsStackInGroupoids.{max uโ‚ƒ vโ‚ƒ} (F' โ‹™ q) J)
    (hq : Functor.IsStackInGroupoids.{max uโ‚ƒ vโ‚ƒ} q J) (hF' : F'.IsFiberedInGroupoids)
    (hJ๐’ด : Functor.IsInheritedTopology.{max uโ‚ƒ vโ‚ƒ} q J J๐’ด) :
    F'.IsGerbe.{max uโ‚ƒ vโ‚ƒ} J๐’ด โ†” IsGerbeOver J q F
Tag 06P2, a definition

Tag 06P2 in the Stacks Project.

CategoryTheory.IsGerbeOver, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Basic.lean, line 117.

Stacks 06P2. F makes ๐’ณ a gerbe over ๐’ด, where q : ๐’ด โฅค ๐’ž fibres ๐’ด over the site (๐’ž, J) and F โ‹™ q fibres ๐’ณ over it: both fibrations are fibred in groupoids, every object of ๐’ด is locally in the image of F, and every morphism of a fibre of q between F-images is locally the F-image of a morphism of a fibre of F โ‹™ q. The last two conditions are Stacks 06P1 (2)(a) and (2)(b).

structure IsGerbeOver (J : GrothendieckTopology ๐’ž) (q : ๐’ด โฅค ๐’ž) (F : ๐’ณ โฅค ๐’ด) : Prop
Tag 06P3, a lemma

Tag 06P3 in the Stacks Project.

CategoryTheory.IsGerbeOver.twoFibreProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Pullback.lean, line 292.

Stacks 06P3. Let ๐’ณ' = ๐’ด' ร—_๐’ด ๐’ณ be the 2-fibre product over ๐’ž of G : ๐’ด' โฅค ๐’ด and F : ๐’ณ โฅค ๐’ด, where ๐’ณ sits over ๐’ž by F โ‹™ q and ๐’ด' by G โ‹™ q. If F makes ๐’ณ a gerbe over ๐’ด and ๐’ด' is fibred in groupoids over ๐’ž, then the first projection makes ๐’ณ' a gerbe over ๐’ด'.

Both local conditions are pulled back along G: an object of ๐’ณ over a member of a covering whose F-image is a restriction of G y' is the second component of an object of ๐’ณ' over that member whose first component is a restriction of y', and a morphism of ๐’ณ matching the G-image of b' is the second component of a morphism of ๐’ณ' whose first component is the restriction of b'.

theorem IsGerbeOver.twoFibreProduct {J : GrothendieckTopology ๐’ž} (hF : IsGerbeOver J q F)
    (hG : (G โ‹™ q).IsFiberedInGroupoids) :
    IsGerbeOver J (G โ‹™ q) (fst (G โ‹™ q) (F โ‹™ q) q G F)
Tag 06R3, a lemma

Tag 06R3 in the Stacks Project.

CategoryTheory.IsGerbeOver.comp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Basic.lean, line 174.

Stacks 06R3. If ๐’ณ is a gerbe over ๐’ด and ๐’ด is a gerbe over ๐’ต, then ๐’ณ is a gerbe over ๐’ต.

This is also Stacks 06R8, the same statement for morphisms of algebraic stacks: the source proves 06R8 by citing 06R3, and an algebraic stack is a category fibred in groupoids over the big fppf site, so the two differ only in the generality of the ambient site.

theorem comp (hF : IsGerbeOver J (G โ‹™ r) F) (hG : IsGerbeOver J r G) :
    IsGerbeOver J r (F โ‹™ G)
Tag 06P4, a lemma

Tag 06P4 in the Stacks Project.

CategoryTheory.IsGerbeOver.of_twoFibreProduct, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/Pullback.lean, line 333.

Stacks 06P4. Let ๐’ณ' = ๐’ด' ร—_๐’ด ๐’ณ be the 2-fibre product over ๐’ž of G : ๐’ด' โฅค ๐’ด and F : ๐’ณ โฅค ๐’ด. If every object of ๐’ด is locally in the image of G โ€” the condition CategoryTheory.IsGerbeOver.locally_essSurj for G โ€” and the first projection makes ๐’ณ' a gerbe over ๐’ด', then F makes ๐’ณ a gerbe over ๐’ด.

This is the converse direction of Stacks 06P3: the two local conditions are descended along G. For the first, an object y' of ๐’ด' whose G-image restricts y is refined by a covering along which ๐’ณ' has objects over y', and their second components are objects of ๐’ณ whose F-images restrict y. For the second, two restrictions of xโ‚ and xโ‚‚ and the comparison isomorphisms G y' โ‰… F xโ‚|_V, G y' โ‰… F xโ‚‚|_V obtained from b assemble into two objects of ๐’ณ' with the same first component y', so that the identity of y' is a morphism of a fibre between their images; local fullness of the first projection then supplies the morphism of ๐’ณ wanted.

theorem IsGerbeOver.of_twoFibreProduct {J : GrothendieckTopology ๐’ž} (hq : q.IsFiberedInGroupoids)
    (hFq : (F โ‹™ q).IsFiberedInGroupoids)
    (hGsurj : โˆ€ {U : ๐’ž} (y : ๐’ด), q.obj y = U โ†’ โˆƒ S โˆˆ J U,
      โˆ€ โฆƒV : ๐’žโฆ„ (f : V โŸถ U), S f โ†’ โˆƒ (y' : ๐’ด') (ฯˆ : G.obj y' โŸถ y), q.IsHomLift f ฯˆ)
    (h : IsGerbeOver J (G โ‹™ q) (fst (G โ‹™ q) (F โ‹™ q) q G F)) :
    IsGerbeOver J q F
Tag 0CJY, a lemma

Tag 0CJY in the Stacks Project.

CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self_uliftFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/BandedSheaf.lean, line 1158.

Stacks 0CJY, with no hypothesis on the universes. Let p : ๐’ฎ โฅค ๐’ž be a gerbe over the site (๐’ž, J): fibred in groupoids, a stack, locally nonempty and locally connected. Assume that for every U and every object x of the fibre ๐’ฎ_U the sheaf of groups Aut(x) = Isom(x, x) = Mor(x, x) on ๐’ž/U is abelian, that is that the endomorphisms of every object of every fibre commute. Then there are

  1. a sheaf ๐’ข of abelian groups on ๐’ž, and
  2. for every U and every object x of ๐’ฎ_U an isomorphism ฮธ x : ๐’ข|_U โ‰… Aut(x) of sheaves of groups on ๐’ž/U, that is an isomorphism of presheaves whose components are multiplicative,

such that for every U and every morphism ฯ† : x โŸถ y of ๐’ฎ_U conjugation by ฯ† carries ฮธ x to ฮธ y: on sections over g : V โŸถ U one has ฮธ y a = ฯ†|_V โˆ˜ ฮธ x a โˆ˜ (ฯ†|_V)โปยน.

๐’ข is the band, CategoryTheory.Gerbe.Band, which lives in Type (max uโ‚ vโ‚ vโ‚‚) and not in the universe vโ‚‚ of Aut(x); the isomorphism of (2) is therefore stated against the universe lift of Aut(x), which is what makes the statement true in every universe. See CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self for the unlifted form, which needs UnivLE.{max uโ‚ vโ‚, vโ‚‚} and is false without it.

public theorem exists_sheaf_iso_morPresheaf_self_uliftFunctor (p : ๐’ฎ โฅค ๐’ž)
    (J : GrothendieckTopology ๐’ž) (hp : p.IsFiberedInGroupoids) (hst : p.IsStack J)
    (hne : p.LocallyNonempty J) (hlc : p.LocallyConnected J)
    (habel : โˆ€ (U : ๐’ž) (x : p.Fiber U) (ฮฑ ฮฒ : x โŸถ x), ฮฑ โ‰ซ ฮฒ = ฮฒ โ‰ซ ฮฑ) :
    haveI : p.IsFibered := hp.isFibered
    haveI : โˆ€ U : ๐’ž, IsGroupoid (p.Fiber U) := hp.fiber_isGroupoid
    โˆƒ (๐’ข : Sheaf J CommGrpCat.{max uโ‚ vโ‚ vโ‚‚})
      (ฮธ : โˆ€ (U : ๐’ž) (x : p.Fiber U),
        (Over.forget U).op โ‹™ ๐’ข.obj โ‹™ forget CommGrpCat.{max uโ‚ vโ‚ vโ‚‚} โ‰…
          p.morPresheaf x x โ‹™ uliftFunctor.{max uโ‚ vโ‚, vโ‚‚}),
      (โˆ€ (U : ๐’ž) (x : p.Fiber U) (g : Over U) (a b : ๐’ข.obj.obj (op g.left)),
          ((ฮธ U x).hom.app (op g) (a * b)).down =
            ((ฮธ U x).hom.app (op g) a).down โ‰ซ ((ฮธ U x).hom.app (op g) b).down) โˆง
        โˆ€ (U : ๐’ž) (x y : p.Fiber U) (ฯ† : x โŸถ y) (g : Over U) (a : ๐’ข.obj.obj (op g.left)),
          ((ฮธ U y).hom.app (op g) a).down =
            pullbackFiberHom (CategoryTheory.inv ฯ†) g.hom โ‰ซ ((ฮธ U x).hom.app (op g) a).down โ‰ซ
              pullbackFiberHom ฯ† g.hom

CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/BandedSheaf.lean, line 1196.

Stacks 0CJY. Let p : ๐’ฎ โฅค ๐’ž be a gerbe over the site (๐’ž, J) whose automorphism sheaves are abelian. Then there are a sheaf ๐’ข of abelian groups on ๐’ž and, for every U and every object x of the fibre ๐’ฎ_U, an isomorphism ฮธ x : ๐’ข|_U โ‰… Aut(x) of sheaves of groups on ๐’ž/U, and these are compatible with conjugation.

The hypothesis UnivLE.{max uโ‚ vโ‚, vโ‚‚} is what makes ๐’ข exist in the universe vโ‚‚ of the morphisms of ๐’ฎ, and it cannot be dropped: Type 0-many copies of a nontrivial โ„ค/2-gerbe give a band whose sections at the top object have cardinality 2 ^ |Type 0|, which is the cardinality of no Type 0. Without it the statement still holds in the form CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self_uliftFunctor, with Aut(x) lifted into the universe ๐’ข is valued in.

public theorem exists_sheaf_iso_morPresheaf_self [UnivLE.{max uโ‚ vโ‚, vโ‚‚}] (p : ๐’ฎ โฅค ๐’ž)
    (J : GrothendieckTopology ๐’ž) (hp : p.IsFiberedInGroupoids) (hst : p.IsStack J)
    (hne : p.LocallyNonempty J) (hlc : p.LocallyConnected J)
    (habel : โˆ€ (U : ๐’ž) (x : p.Fiber U) (ฮฑ ฮฒ : x โŸถ x), ฮฑ โ‰ซ ฮฒ = ฮฒ โ‰ซ ฮฑ) :
    haveI : p.IsFibered := hp.isFibered
    haveI : โˆ€ U : ๐’ž, IsGroupoid (p.Fiber U) := hp.fiber_isGroupoid
    โˆƒ (๐’ข : Sheaf J CommGrpCat.{vโ‚‚})
      (ฮธ : โˆ€ (U : ๐’ž) (x : p.Fiber U),
        (Over.forget U).op โ‹™ ๐’ข.obj โ‹™ forget CommGrpCat.{vโ‚‚} โ‰… p.morPresheaf x x),
      (โˆ€ (U : ๐’ž) (x : p.Fiber U) (g : Over U) (a b : ๐’ข.obj.obj (op g.left)),
          (ฮธ U x).hom.app (op g) (a * b) =
            (ฮธ U x).hom.app (op g) a โ‰ซ (ฮธ U x).hom.app (op g) b) โˆง
        โˆ€ (U : ๐’ž) (x y : p.Fiber U) (ฯ† : x โŸถ y) (g : Over U) (a : ๐’ข.obj.obj (op g.left)),
          (ฮธ U y).hom.app (op g) a =
            pullbackFiberHom (CategoryTheory.inv ฯ†) g.hom โ‰ซ (ฮธ U x).hom.app (op g) a โ‰ซ
              pullbackFiberHom ฯ† g.hom

CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self_uliftFunctor_base, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Gerbe/BandedSheaf.lean, line 1240.

Stacks 0CJY, with the compatibility of the comparisons over varying base object. Let p : ๐’ฎ โฅค ๐’ž be a gerbe over the site (๐’ž, J) whose automorphism sheaves are abelian. Then there are a sheaf ๐’ข of abelian groups on ๐’ž and, for every U and every object x of the fibre ๐’ฎ_U, an isomorphism ฮธ x : ๐’ข|_U โ‰… Aut(x) of sheaves of groups on ๐’ž/U, such that

  1. each ฮธ x is multiplicative on sections,
  2. for ฯ† : x โŸถ y in ๐’ฎ_U, conjugation by ฯ† carries ฮธ x to ฮธ y, and
  3. ฮธ x read on sections over g : Over U is ฮธ (x|_g) read on sections over the identity of g.left, conjugated by the contraction of the chosen pullback along that identity.

Clauses (1) and (2) are the conclusion of Stacks 0CJY as the source states it, so this is CategoryTheory.Gerbe.exists_sheaf_iso_morPresheaf_self_uliftFunctor with (3) added. Clause (3) is the compatibility of the local comparisons over varying U whose verification the source's proof omits; for the band it is CategoryTheory.Gerbe.Band.fiberHom_pullbackFiber_base, the naturality of a band section. It is what makes "the sheaf of abelian groups constructed in Stacks 0CJY" pin ๐’ข down well enough to use it as the coefficient sheaf of Stacks 0CK0, so that no hypothesis of CategoryTheory.Gerbe.exists_band_nonempty_fiber_of_cohomology_vanishing has to be assumed.

public theorem exists_sheaf_iso_morPresheaf_self_uliftFunctor_base (p : ๐’ฎ โฅค ๐’ž)
    (J : GrothendieckTopology ๐’ž) (hp : p.IsFiberedInGroupoids) (hst : p.IsStack J)
    (hne : p.LocallyNonempty J) (hlc : p.LocallyConnected J)
    (habel : โˆ€ (U : ๐’ž) (x : p.Fiber U) (ฮฑ ฮฒ : x โŸถ x), ฮฑ โ‰ซ ฮฒ = ฮฒ โ‰ซ ฮฑ) :
    haveI : p.IsFibered := hp.isFibered
    haveI : โˆ€ U : ๐’ž, IsGroupoid (p.Fiber U) := hp.fiber_isGroupoid
    โˆƒ (๐’ข : Sheaf J CommGrpCat.{max uโ‚ vโ‚ vโ‚‚})
      (ฮธ : โˆ€ (U : ๐’ž) (x : p.Fiber U),
        (Over.forget U).op โ‹™ ๐’ข.obj โ‹™ forget CommGrpCat.{max uโ‚ vโ‚ vโ‚‚} โ‰…
          p.morPresheaf x x โ‹™ uliftFunctor.{max uโ‚ vโ‚, vโ‚‚}),
      (โˆ€ (U : ๐’ž) (x : p.Fiber U) (g : Over U) (a b : ๐’ข.obj.obj (op g.left)),
          ((ฮธ U x).hom.app (op g) (a * b)).down =
            ((ฮธ U x).hom.app (op g) a).down โ‰ซ ((ฮธ U x).hom.app (op g) b).down) โˆง
        (โˆ€ (U : ๐’ž) (x y : p.Fiber U) (ฯ† : x โŸถ y) (g : Over U) (a : ๐’ข.obj.obj (op g.left)),
          ((ฮธ U y).hom.app (op g) a).down =
            pullbackFiberHom (CategoryTheory.inv ฯ†) g.hom โ‰ซ ((ฮธ U x).hom.app (op g) a).down โ‰ซ
              pullbackFiberHom ฯ† g.hom) โˆง
        โˆ€ (U : ๐’ž) (x : p.Fiber U) (g : Over U) (a : ๐’ข.obj.obj (op g.left)),
          ((ฮธ U x).hom.app (op g) a).down =
            (pullbackFiberIdIso (pullbackFiber p x g.hom)).inv โ‰ซ
              ((ฮธ g.left (pullbackFiber p x g.hom)).hom.app (op (Over.mk (๐Ÿ™ g.left))) a).down โ‰ซ
                (pullbackFiberIdIso (pullbackFiber p x g.hom)).hom
Sources

Section8.12 Functoriality for stacks#

Section 8.12 of the Stacks Project, Tag 04WA. 12 tags here are carried by 17 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 04WB, a lemma

Tag 04WB in the Stacks Project.

CategoryTheory.StrictPullback.isFibered_structureFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/Pushforward.lean, line 163.

Stacks 04WB. If p : ๐’ฎ โฅค ๐’Ÿ is a fibred category, then so is the pushforward u^p๐’ฎ โฅค ๐’ž along any functor u : ๐’ž โฅค ๐’Ÿ.

theorem isFibered_structureFunctor (u : ๐’ž โฅค ๐’Ÿ) (p : ๐’ฎ โฅค ๐’Ÿ) [p.IsFibered] :
    (structureFunctor u p).IsFibered
Tag 04WC, a lemma

Tag 04WC in the Stacks Project.

CategoryTheory.StrictPullback.isStack_structureFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PushforwardStack.lean, line 66.

Stacks 04WC. If p : ๐’ฎ โฅค ๐’Ÿ is a stack over the site (๐’Ÿ, K), then the pushforward u^p๐’ฎ โฅค ๐’ž along a continuous functor of sites u : ๐’ž โฅค ๐’Ÿ is a stack over (๐’ž, J).

Continuity of u in the sense of Stacks 00WU is [u.IsContinuous J K] together with the commutation with fibre products, [HasPullbacks ๐’ž] and [PreservesLimitsOfShape WalkingCospan u]; see the implementation notes.

theorem isStack_structureFunctor (J : GrothendieckTopology ๐’ž) (K : GrothendieckTopology ๐’Ÿ)
    (u : ๐’ž โฅค ๐’Ÿ) [u.IsContinuous J K] [HasPullbacks ๐’ž] [PreservesLimitsOfShape WalkingCospan u]
    (p : ๐’ฎ โฅค ๐’Ÿ) (hp : Functor.IsStack p K) :
    Functor.IsStack (structureFunctor u p) J
Tag 04WD, a lemma

Tag 04WD in the Stacks Project.

CategoryTheory.StrictPullback.isStack_isFiberedInGroupoids_structureFunctor, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PushforwardStack.lean, line 106.

Stacks 04WD. If p : ๐’ฎ โฅค ๐’Ÿ is a stack in groupoids over the site (๐’Ÿ, K), then the pushforward u^p๐’ฎ โฅค ๐’ž along a continuous functor of sites u : ๐’ž โฅค ๐’Ÿ is a stack in groupoids over (๐’ž, J).

theorem isStack_isFiberedInGroupoids_structureFunctor (J : GrothendieckTopology ๐’ž)
    (K : GrothendieckTopology ๐’Ÿ) (u : ๐’ž โฅค ๐’Ÿ) [u.IsContinuous J K] [HasPullbacks ๐’ž]
    [PreservesLimitsOfShape WalkingCospan u] (p : ๐’ฎ โฅค ๐’Ÿ) (hp : Functor.IsStack p K)
    (hp' : p.IsFiberedInGroupoids) :
    Functor.IsStack (structureFunctor u p) J โˆง
      (structureFunctor u p).IsFiberedInGroupoids
Tag 04WE, a definition

Tag 04WE in the Stacks Project.

CategoryTheory.pushforwardFibredCategory, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/Pushforward.lean, line 188.

Stacks 04WE. Notation: for a morphism of sites f : ๐’Ÿ โ†’ ๐’ž given by a continuous functor u : ๐’ž โฅค ๐’Ÿ and a fibred category p : ๐’ฎ โฅค ๐’Ÿ, one writes f_*๐’ฎ for the fibred category u^p๐’ฎ over ๐’ž and calls it the pushforward of ๐’ฎ along f. The topologies J and K and the continuity of u play no role in the construction; they are the data of f, which is what this notation names.

def pushforwardFibredCategory (J : GrothendieckTopology ๐’ž) (K : GrothendieckTopology ๐’Ÿ)
    (u : ๐’ž โฅค ๐’Ÿ) [u.IsContinuous J K] (p : ๐’ฎ โฅค ๐’Ÿ) [p.IsFibered] :
    StrictPullback u p โฅค ๐’ž
Tag 04WF, a lemma

Tag 04WF in the Stacks Project.

CategoryTheory.Comma.hasRightCalculusOfFractions_stronglyCartesianOver, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackFractions.lean, line 273.

The morphisms with identity base component and strongly cartesian fibre component form a right multiplicative system. Let u : ๐’ž โฅค ๐’Ÿ be a functor, let p : ๐’ฎ โฅค ๐’ž be a fibred category, assume ๐’ž has nonempty finite limits and that u commutes with nonempty finite limits. In the category u_pp ๐’ฎ = Comma (๐Ÿญ ๐’Ÿ) (p โ‹™ u), whose objects are the triples (U, ฯ† : V โŸถ u(U), x โˆˆ ๐’ฎ_U), consider the set R of morphisms (a, id_V, ฮฑ) : (U', ฯ†' : V โŸถ u(U'), x') โŸถ (U, ฯ† : V โŸถ u(U), x) whose ๐’Ÿ-component is an identity and whose ฮฑ is strongly cartesian. Then R is a right multiplicative system: it contains the identities and is stable under composition (RMS1), every left fraction over R can be turned into a right fraction (RMS2), and two morphisms equalized by postcomposition with an element of R are equalized by precomposition with an element of R (RMS3).

public theorem Comma.hasRightCalculusOfFractions_stronglyCartesianOver
    (p : ๐’ฎ โฅค ๐’ž) (u : ๐’ž โฅค ๐’Ÿ) [p.IsFibered] [HasNonemptyFiniteLimits ๐’ž]
    (hu : โˆ€ (J : Type) [SmallCategory J] [FinCategory J] [Nonempty J],
      Limits.PreservesLimitsOfShape J u) :
    MorphismProperty.HasRightCalculusOfFractions
      (fun (X Y : Comma (๐Ÿญ ๐’Ÿ) (p โ‹™ u)) (f : X โŸถ Y) =>
        (โˆƒ h : X.left = Y.left, f.left = eqToHom h) โˆง stronglyCartesianOver p f.right)
Tag 04WG, a lemma

Tag 04WG in the Stacks Project.

CategoryTheory.Comma.pullbackLocalization, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackFibred.lean, line 125.

u_p ๐’ฎ = Rโปยน u_pp ๐’ฎ, the localization of u_pp ๐’ฎ = Comma (๐Ÿญ ๐’Ÿ) (p โ‹™ u) at the set R of Stacks 04WF.

abbrev pullbackLocalization

CategoryTheory.Comma.pullbackProj, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackFibred.lean, line 140.

The structure functor p_p : u_p ๐’ฎ โฅค ๐’Ÿ, the extension of p_pp to the localization u_p ๐’ฎ obtained from the universal property because p_pp inverts R. This is how u_p ๐’ฎ is regarded as a category over ๐’Ÿ.

noncomputable def pullbackProj : pullbackLocalization p u โฅค ๐’Ÿ

CategoryTheory.Comma.isFibered_pullbackProj, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackFibred.lean, line 328.

u_p ๐’ฎ is a fibred category over ๐’Ÿ (Stacks 04WG). Let u : ๐’ž โฅค ๐’Ÿ be a functor, let p : ๐’ฎ โฅค ๐’ž be a fibred category, assume ๐’ž has nonempty finite limits and that u commutes with nonempty finite limits, so that the set R of Stacks 04WF is a right multiplicative system. Then the structure functor p_p : u_p ๐’ฎ โฅค ๐’Ÿ of the localization u_p ๐’ฎ = Rโปยน u_pp ๐’ฎ is a fibred category: every morphism ฮฒ : V' โŸถ V of ๐’Ÿ and every object of u_p ๐’ฎ over V admit a strongly cartesian lift, namely the image of the reindexing morphism (id_U, ฮฒ, id_x).

theorem isFibered_pullbackProj
    (hu : โˆ€ (J : Type) [SmallCategory J] [FinCategory J] [Nonempty J],
      Limits.PreservesLimitsOfShape J u) :
    (pullbackProj p u).IsFibered
Tag 04WH, a lemma

Tag 04WH in the Stacks Project.

CategoryTheory.Comma.isFiberedInGroupoids_pullbackProj, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackGroupoid.lean, line 186.

u_p ๐’ฎ is fibred in groupoids over ๐’Ÿ (Stacks 04WH). With notation and assumptions as in Stacks 04WG โ€” u : ๐’ž โฅค ๐’Ÿ a functor commuting with nonempty finite limits, ๐’ž with nonempty finite limits, and u_p ๐’ฎ = Rโปยน u_pp ๐’ฎ the localization of u_pp ๐’ฎ = Comma (๐Ÿญ ๐’Ÿ) (p โ‹™ u) at the set R of Stacks 04WF, regarded as a category over ๐’Ÿ through p_p = Comma.pullbackProj p u โ€” if p : ๐’ฎ โฅค ๐’ž is fibred in groupoids then so is p_p.

By Stacks 04WG the functor p_p is fibred, and its fibres are groupoids (Comma.isGroupoid_fiber_pullbackProj), so this is Stacks 003V.

theorem isFiberedInGroupoids_pullbackProj (hp : p.IsFiberedInGroupoids)
    (hu : โˆ€ (J : Type) [SmallCategory J] [FinCategory J] [Nonempty J],
      Limits.PreservesLimitsOfShape J u) :
    (pullbackProj p u).IsFiberedInGroupoids
Tag 04WI, a lemma

Tag 04WI in the Stacks Project.

CategoryTheory.equivalenceIsFibredOneMorphismStrictPullbackPullbackLocalization, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackAdjunction.lean, line 1440.

The pullback of a fibred category along u is adjoint to the pushforward along u (Stacks 04WI). Let u : ๐’ž โฅค ๐’Ÿ be a functor, let p : ๐’ฎ โฅค ๐’ž and q : ๐’ฏ โฅค ๐’Ÿ be fibred categories, assume ๐’ž has nonempty finite limits and that u commutes with nonempty finite limits. Then the morphism category Mor_{Fib/๐’ž}(๐’ฎ, u^p ๐’ฏ) of 1-morphisms ๐’ฎ โŸถ u^p ๐’ฏ of fibred categories over ๐’ž is canonically equivalent to the morphism category Mor_{Fib/๐’Ÿ}(u_p ๐’ฎ, ๐’ฏ) of 1-morphisms u_p ๐’ฎ โŸถ ๐’ฏ of fibred categories over ๐’Ÿ, where u^p ๐’ฏ is the pushforward of ๐’ฏ along u (Stacks 04WB) and u_p ๐’ฎ is the pullback of ๐’ฎ along u (Stacks 04WG). Each morphism category is realized as the full subcategory of the category of based functors on those which preserve strongly cartesian morphisms, its morphisms being the morphisms of functors whose components lie over identities of the base.

noncomputable def equivalenceIsFibredOneMorphismStrictPullbackPullbackLocalization {๐’ž : Type uโ‚}
    [Category.{vโ‚} ๐’ž] {๐’Ÿ : Type uโ‚‚} [Category.{vโ‚‚} ๐’Ÿ] {๐’ฎ : Type uโ‚ƒ} [Category.{vโ‚ƒ} ๐’ฎ] {๐’ฏ : Type uโ‚„}
    [Category.{vโ‚„} ๐’ฏ] (u : ๐’ž โฅค ๐’Ÿ) (p : ๐’ฎ โฅค ๐’ž) (q : ๐’ฏ โฅค ๐’Ÿ) [p.IsFibered] [q.IsFibered]
    [HasNonemptyFiniteLimits ๐’ž]
    (hu :
      โˆ€ (J : Type) [SmallCategory J] [FinCategory J] [Nonempty J],
        Limits.PreservesLimitsOfShape J u) :
    ObjectProperty.FullSubcategory
        (fun G :
            BasedCategory.ofFunctor p โฅคแต‡
              BasedCategory.ofFunctor (StrictPullback.structureFunctor u q) =>
          Functor.IsFibredOneMorphism p (StrictPullback.structureFunctor u q) G.toFunctor) โ‰Œ
      ObjectProperty.FullSubcategory
        (fun G : BasedCategory.ofFunctor (Comma.pullbackProj p u) โฅคแต‡ BasedCategory.ofFunctor q =>
          Functor.IsFibredOneMorphism (Comma.pullbackProj p u) q G.toFunctor)
Tag 04WJ, a definition

Tag 04WJ in the Stacks Project.

CategoryTheory.Comma.pullbackStack, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStack.lean, line 115.

The pullback fโปยน๐’ฎ of the stack ๐’ฎ along the morphism of sites f (Stacks 04WJ), given as its structure functor over ๐’Ÿ.

f : ๐’Ÿ โŸถ ๐’ž is the morphism of sites attached to the continuous functor u : ๐’ž โฅค ๐’Ÿ by Sites 00X6, ๐’ฎ is a stack over (๐’ž, J), and fโปยน๐’ฎ is the stackification over (๐’Ÿ, K) of the fibred category u_p ๐’ฎ = Comma.pullbackLocalization p u of Stacks 04WG. The stackification is supplied: q : ๐’ณ โฅค ๐’Ÿ is a stack over (๐’Ÿ, K) and G : u_p ๐’ฎ โฅค ๐’ณ is a 1-morphism of fibred categories over ๐’Ÿ satisfying the two clauses of Stacks 02ZN โ€” local bijectivity of the induced maps of morphism presheaves, and local essential surjectivity on fibres. Relative to that data, fโปยน๐’ฎ is q.

def pullbackStack (p : ๐’ฎ โฅค ๐’ž) (u : ๐’ž โฅค ๐’Ÿ) [p.IsFibered] [HasFiniteLimits ๐’ž]
    [PreservesFiniteLimits u] [u.IsContinuous J K] {๐’ณ : Type uโ‚„} [Category.{max uโ‚‚ uโ‚ƒ vb v} ๐’ณ]
    {q : ๐’ณ โฅค ๐’Ÿ} [q.IsFibered] {G : pullbackLocalization p u โฅค ๐’ณ}
    (_hs : p.IsStack J) (_hq : q.IsStack K)
    (hG : (pullbackProj p u).IsFibredOneMorphism q G)
    (_hmor : โˆ€ (V : ๐’Ÿ) (x y : (pullbackProj p u).Fiber V),
      Presheaf.IsLocallyInjective (K.over V) (hG.morPresheafMap x y) โˆง
        Presheaf.IsLocallySurjective (K.over V) (hG.morPresheafMap x y))
    (_hobj : โˆ€ (V : ๐’Ÿ) (x' : q.Fiber V), โˆƒ R โˆˆ K V, โˆ€ โฆƒW : ๐’Ÿโฆ„ โฆƒg : W โŸถ Vโฆ„, R.arrows g โ†’
      (Functor.fiberFunctorOfCompEq hG.comp_eq W).essImage (Functor.pullbackFiber q x' g)) :
    ๐’ณ โฅค ๐’Ÿ

CategoryTheory.Comma.pullbackStackMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStack.lean, line 131.

The canonical 1-morphism u_p ๐’ฎ โฅค fโปยน๐’ฎ (Stacks 04WJ), exhibiting the pullback of ๐’ฎ along f as the stackification of u_p ๐’ฎ.

def pullbackStackMap (p : ๐’ฎ โฅค ๐’ž) (u : ๐’ž โฅค ๐’Ÿ) [p.IsFibered] [HasFiniteLimits ๐’ž]
    [PreservesFiniteLimits u] [u.IsContinuous J K] {๐’ณ : Type uโ‚„} [Category.{max uโ‚‚ uโ‚ƒ vb v} ๐’ณ]
    {q : ๐’ณ โฅค ๐’Ÿ} [q.IsFibered] {G : pullbackLocalization p u โฅค ๐’ณ}
    (_hs : p.IsStack J) (_hq : q.IsStack K)
    (hG : (pullbackProj p u).IsFibredOneMorphism q G)
    (_hmor : โˆ€ (V : ๐’Ÿ) (x y : (pullbackProj p u).Fiber V),
      Presheaf.IsLocallyInjective (K.over V) (hG.morPresheafMap x y) โˆง
        Presheaf.IsLocallySurjective (K.over V) (hG.morPresheafMap x y))
    (_hobj : โˆ€ (V : ๐’Ÿ) (x' : q.Fiber V), โˆƒ R โˆˆ K V, โˆ€ โฆƒW : ๐’Ÿโฆ„ โฆƒg : W โŸถ Vโฆ„, R.arrows g โ†’
      (Functor.fiberFunctorOfCompEq hG.comp_eq W).essImage (Functor.pullbackFiber q x' g)) :
    pullbackLocalization p u โฅค ๐’ณ
Tag 04WK, a lemma

Tag 04WK in the Stacks Project.

CategoryTheory.Functor.equivalenceFibredMorStrictPullbackStackification, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStackAdjunction.lean, line 194.

The pullback of a stack along f is adjoint to the pushforward along f (Stacks 04WK). Let f : ๐’Ÿ โŸถ ๐’ž be the morphism of sites given by a functor u : ๐’ž โฅค ๐’Ÿ as in Sites 00X6, let p : ๐’ฎ โฅค ๐’ž be a fibred category and let q : ๐’ฏ โฅค ๐’Ÿ be a stack. Let G : u_p ๐’ฎ โฅค ๐’ฎ' exhibit ๐’ฎ' as the stackification of the pullback u_p ๐’ฎ of Stacks 04WG, in the sense of Stacks 02ZN, so that ๐’ฎ' = fโปยน๐’ฎ is the pullback of Stacks 04WJ. Then the morphism category Mor_{Stacks/๐’ž}(๐’ฎ, f_*๐’ฏ) of 1-morphisms ๐’ฎ โŸถ f_*๐’ฏ over ๐’ž and their 2-morphisms is canonically equivalent to the morphism category Mor_{Stacks/๐’Ÿ}(fโปยน๐’ฎ, ๐’ฏ), where f_*๐’ฏ = u^p ๐’ฏ is the pushforward of Stacks 04WB. The equivalence is the composite of Stacks 04WI, the same adjunction at the level of fibred categories, with Stacks 04W9, restriction along the stackification G.

This statement is conditional on being given a stackification G: its hypotheses are the unfolded clauses of Stacks 02ZN, which that construction supplies once it is assembled.

noncomputable def equivalenceFibredMorStrictPullbackStackification
    (hu : โˆ€ (J : Type) [SmallCategory J] [FinCategory J] [Nonempty J],
      Limits.PreservesLimitsOfShape J u)
    (hG : (Comma.pullbackProj p u).IsFibredOneMorphism p' G)
    (hmor : โˆ€ (V : ๐’Ÿ) (x y : (Comma.pullbackProj p u).Fiber V),
      Presheaf.IsLocallyInjective (K.over V) (hG.morPresheafMap x y) โˆง
        Presheaf.IsLocallySurjective (K.over V) (hG.morPresheafMap x y))
    (hqmor : โˆ€ (V : ๐’Ÿ) (x y : q.Fiber V), IsMorSheaf q K V x y)
    (hobj : โˆ€ (V : ๐’Ÿ) (x' : p'.Fiber V), โˆƒ R โˆˆ K V, โˆ€ โฆƒW : ๐’Ÿโฆ„ โฆƒf : W โŸถ Vโฆ„, R.arrows f โ†’
      (fiberFunctorOfCompEq hG.comp_eq W).essImage (pullbackFiber p' x' f))
    (hdesc : HasEffectiveDescent q K) :
    FibredMor p (StrictPullback.structureFunctor u q) โ‰Œ FibredMor p' q

CategoryTheory.Functor.equivalenceFibredMorPushforwardPullbackStack, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStackAdjunction.lean, line 240.

Stacks 04WK, written with the pushforward f_*๐’ฏ of Stacks 04WE and the pullback fโปยน๐’ฎ of Stacks 04WJ. Let f : ๐’Ÿ โŸถ ๐’ž be the morphism of sites attached by Sites 00X6 to a continuous functor u : ๐’ž โฅค ๐’Ÿ between a finitely complete (๐’ž, J) and (๐’Ÿ, K) which is left exact, let ๐’ฎ be a stack over (๐’ž, J) and let ๐’ฏ be a stack over (๐’Ÿ, K). Then

Mor_{Stacks/๐’ž}(๐’ฎ, f_*๐’ฏ) โ‰ƒ Mor_{Stacks/๐’Ÿ}(fโปยน๐’ฎ, ๐’ฏ).

The pullback fโปยน๐’ฎ is represented by the supplied stackification of u_p ๐’ฎ: the stack q : ๐’ณ โฅค ๐’Ÿ and the 1-morphism G : u_p ๐’ฎ โฅค ๐’ณ satisfying the clauses hG, hmor, hobj of Stacks 02ZN. So this statement too is conditional on being given a stackification, which Stacks 02ZN supplies once assembled.

The instance [t.IsFibered] is implied by ht and is taken separately only because the notation f_*๐’ฏ of Stacks 04WE needs it to elaborate.

noncomputable def equivalenceFibredMorPushforwardPullbackStack
    (hs : p.IsStack J) (hq : q.IsStack K)
    (hG : (Comma.pullbackProj p u).IsFibredOneMorphism q G)
    (hmor : โˆ€ (V : ๐’Ÿ) (x y : (Comma.pullbackProj p u).Fiber V),
      Presheaf.IsLocallyInjective (K.over V) (hG.morPresheafMap x y) โˆง
        Presheaf.IsLocallySurjective (K.over V) (hG.morPresheafMap x y))
    (hobj : โˆ€ (V : ๐’Ÿ) (x' : q.Fiber V), โˆƒ R โˆˆ K V, โˆ€ โฆƒW : ๐’Ÿโฆ„ โฆƒg : W โŸถ Vโฆ„, R.arrows g โ†’
      (fiberFunctorOfCompEq hG.comp_eq W).essImage (pullbackFiber q x' g))
    (ht : t.IsStack K) :
    FibredMor p (pushforwardFibredCategory J K u t) โ‰Œ FibredMor q t
Tag 04WR, a lemma

Tag 04WR in the Stacks Project.

CategoryTheory.pullback_stackification, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStackification/LocalEssSurj.lean, line 259.

Let f : ๐’Ÿ โŸถ ๐’ž be the morphism of sites given by a continuous u : ๐’ž โฅค ๐’Ÿ satisfying the hypotheses of Sites 00X6, let p : ๐’ฎ โฅค ๐’ž be a fibred category and let G : ๐’ฎ โฅค ๐’ฎ' be its stackification (clauses (1) and (2) of Stacks 02ZN, spelled out as hmor and hobj). Let G' : u_p ๐’ฎ' โฅค ๐’ฏ exhibit the stack q : ๐’ฏ โฅค ๐’Ÿ as the stackification of u_p ๐’ฎ' โ€” that is, let ๐’ฏ be fโปยน๐’ฎ' in the sense of Stacks 04WJ โ€” and let H : u_p ๐’ฎ โฅค ๐’ฏ be the canonical functor, pinned down by its restriction Q โ‹™ H = ฮฆ โ‹™ Q' โ‹™ G' along the localization functor. Then H exhibits ๐’ฏ as the stackification of u_p ๐’ฎ: fโปยน๐’ฎ' is the stackification of u_p ๐’ฎ.

theorem pullback_stackification
    [p.IsFibered] [p'.IsFibered] [HasNonemptyFiniteLimits ๐’ž]
    (J : GrothendieckTopology ๐’ž) (K : GrothendieckTopology ๐’Ÿ) [u.IsContinuous J K]
    (hu : โˆ€ (J' : Type) [SmallCategory J'] [FinCategory J'] [Nonempty J'],
      Limits.PreservesLimitsOfShape J' u)
    (hGG : p.IsFibredOneMorphism p' G)
    (hmor : โˆ€ (U : ๐’ž) (x y : p.Fiber U),
      Presheaf.IsLocallyInjective (J.over U) (hGG.morPresheafMap x y) โˆง
        Presheaf.IsLocallySurjective (J.over U) (hGG.morPresheafMap x y))
    (hobj : โˆ€ (U : ๐’ž) (x' : p'.Fiber U), โˆƒ R โˆˆ J U, โˆ€ โฆƒUโ‚ : ๐’žโฆ„ โฆƒd : Uโ‚ โŸถ Uโฆ„, R.arrows d โ†’
      (Functor.fiberFunctorOfCompEq hGG.comp_eq Uโ‚).essImage (Functor.pullbackFiber p' x' d))
    {q : ๐’ฏ โฅค ๐’Ÿ} (hq : q.IsStack K)
    {G' : Comma.pullbackLocalization p' u โฅค ๐’ฏ}
    (hG' : haveI : (Comma.pullbackProj p' u).IsFibered := Comma.isFibered_pullbackProj p' u hu
      (Comma.pullbackProj p' u).IsFibredOneMorphism q G')
    (hmor' : haveI : (Comma.pullbackProj p' u).IsFibered := Comma.isFibered_pullbackProj p' u hu
      haveI : q.IsFibered := hq.isFibered
      โˆ€ (V : ๐’Ÿ) (x y : (Comma.pullbackProj p' u).Fiber V),
        Presheaf.IsLocallyInjective (K.over V) (hG'.morPresheafMap x y) โˆง
          Presheaf.IsLocallySurjective (K.over V) (hG'.morPresheafMap x y))
    (hobj' : haveI : q.IsFibered := hq.isFibered
      โˆ€ (V : ๐’Ÿ) (z : q.Fiber V), โˆƒ T โˆˆ K V, โˆ€ โฆƒVโ‚ : ๐’Ÿโฆ„ โฆƒฮฒ : Vโ‚ โŸถ Vโฆ„, T.arrows ฮฒ โ†’
        (Functor.fiberFunctorOfCompEq hG'.comp_eq Vโ‚).essImage (Functor.pullbackFiber q z ฮฒ))
    (H : Comma.pullbackLocalization p u โฅค ๐’ฏ)
    (hH : (Comma.idBaseStronglyCartesian p u).Q โ‹™ H =
      commaMapOver u hGG.comp_eq โ‹™ (Comma.idBaseStronglyCartesian p' u).Q โ‹™ G') :
    haveI : (Comma.pullbackProj p u).IsFibered := Comma.isFibered_pullbackProj p u hu
    haveI : q.IsFibered := hq.isFibered
    โˆƒ hH' : (Comma.pullbackProj p u).IsFibredOneMorphism q H,
      (โˆ€ (V : ๐’Ÿ) (x y : (Comma.pullbackProj p u).Fiber V),
          Presheaf.IsLocallyInjective (K.over V) (hH'.morPresheafMap x y) โˆง
            Presheaf.IsLocallySurjective (K.over V) (hH'.morPresheafMap x y)) โˆง
        โˆ€ (V : ๐’Ÿ) (z : q.Fiber V), โˆƒ T โˆˆ K V, โˆ€ โฆƒVโ‚ : ๐’Ÿโฆ„ โฆƒฮฒ : Vโ‚ โŸถ Vโฆ„, T.arrows ฮฒ โ†’
          (Functor.fiberFunctorOfCompEq hH'.comp_eq Vโ‚).essImage
            (Functor.pullbackFiber q z ฮฒ)
Tag 04WS, a lemma

Tag 04WS in the Stacks Project.

CategoryTheory.Comma.equivalenceOverPullbackStackCan, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStackEquivalence.lean, line 1092. The attribute's comment: โ€œ(1)โ€.

Stacks 04WS (1), as data. Let u : ๐’ž โฅค ๐’Ÿ satisfy the assumptions of Sites 00XU โ€” continuous, cocontinuous, fully faithful, ๐’ž finitely complete and u left exact โ€” and let f : ๐’Ÿ โŸถ ๐’ž be the associated morphism of sites. Let ๐’ฎ be a stack over (๐’ž, J) and let G : u_p ๐’ฎ โฅค fโปยน๐’ฎ exhibit fโปยน๐’ฎ as the stackification of u_p ๐’ฎ over (๐’Ÿ, K) in the sense of Stacks 02ZN. Then the canonical functor ๐’ฎ โŸถ f_*fโปยน๐’ฎ is an equivalence of stacks over ๐’ž: a quasi-inverse strictly over ๐’ž, together with vertical unit and counit isomorphisms.

By Stacks 046N it suffices that the canonical functor be fully faithful and that every object of a fibre of f_*fโปยน๐’ฎ be locally in its essential image on fibres, which are CategoryTheory.Comma.fullyFaithful_pullbackStackCan and CategoryTheory.Comma.locallyEssSurjOnFibers_pullbackStackCan.

The statement is conditional on being given a stackification, which Stacks 02ZN supplies once assembled.

noncomputable def equivalenceOverPullbackStackCan
    (hobj : โˆ€ (V : ๐’Ÿ) (x' : q.Fiber V), โˆƒ R โˆˆ K V, โˆ€ โฆƒW : ๐’Ÿโฆ„ โฆƒg : W โŸถ Vโฆ„, R.arrows g โ†’
      (Functor.fiberFunctorOfCompEq hG.comp_eq W).essImage (Functor.pullbackFiber q x' g)) :
    Functor.IsEquivalenceOver p (StrictPullback.structureFunctor u q)
      (pullbackStackCan p u hG)

CategoryTheory.Comma.equivalenceFibredMorPullbackStack, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/Functoriality/PullbackStackEquivalence.lean, line 1172. The attribute's comment: โ€œ(2)โ€.

Stacks 04WS (2), for the pullbacks given by supplied stackifications. Let u : ๐’ž โฅค ๐’Ÿ satisfy the assumptions of Sites 00XU and let f : ๐’Ÿ โŸถ ๐’ž be the associated morphism of sites. For stacks ๐’ฎ and ๐’ฎโ‚‚ over (๐’ž, J) with pullbacks fโปยน๐’ฎ and fโปยน๐’ฎโ‚‚ given by supplied stackifications of u_p ๐’ฎ and u_p ๐’ฎโ‚‚ (Stacks 04WJ), the morphism categories

Mor_{Stacks/๐’ž}(๐’ฎ, ๐’ฎโ‚‚) and Mor_{Stacks/๐’Ÿ}(fโปยน๐’ฎ, fโปยน๐’ฎโ‚‚)

are canonically equivalent. The equivalence is the composite of post-composition with the canonical equivalence ๐’ฎโ‚‚ โŸถ f_*fโปยน๐’ฎโ‚‚ of clause (1) with the adjunction of Stacks 04WK at ๐’ฏ = fโปยน๐’ฎโ‚‚; the direction fโปยน is its quasi-inverse.

Both clauses are conditional on being given stackifications, which Stacks 02ZN supplies once assembled.

noncomputable def equivalenceFibredMorPullbackStack :
    Functor.FibredMor p pโ‚‚ โ‰Œ
      Functor.FibredMor q qโ‚‚
Sources

Section8.13 Stacks and localization#

Section 8.13 of the Stacks Project, Tag 04WT. 2 tags here are carried by 6 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.

Tag 04WU, a lemma

Tag 04WU in the Stacks Project.

CategoryTheory.Over.isStack_forget_iff_isSheaf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Stack/OverIsStack.lean, line 312.

Let (๐’ž, J) be a site and let U be an object of ๐’ž. The localization j_U : ๐’ž/U โฅค ๐’ž is a stack over ๐’ž if and only if the representable presheaf h_U is a sheaf.

theorem isStack_forget_iff_isSheaf (J : GrothendieckTopology ๐’ž) :
    (Over.forget U).IsStack J โ†” Presheaf.IsSheaf J (yoneda.obj U)
Tag 04WV, a lemma

Tag 04WV in the Stacks Project.

CategoryTheory.Functor.isStack_comp_forget, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/StacksAndLocalization.lean, line 246.

Construction A for stacks. Let U be an object of ๐’ž whose representable presheaf h_U is a sheaf, and let p : ๐’ฎ โฅค ๐’ž/U be a stack over the site (๐’ž/U, J.over U). Then j_! p = p โ‹™ j_U : ๐’ฎ โฅค ๐’ž is a stack over (๐’ž, J).

theorem isStack_comp_forget (p : ๐’ณ โฅค Over U) {J : GrothendieckTopology ๐’ž}
    (hU : Presheaf.IsSheaf J (yoneda.obj U)) (hp : p.IsStack (J.over U)) :
    (p โ‹™ Over.forget U).IsStack J

CategoryTheory.Over.stackConstructionHomEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/StacksAndLocalization.lean, line 589.

Construction A is bijective on 1-morphisms, and is the identity on the underlying functor.

def stackConstructionHomEquiv
    (๐’ฎ ๐’ฎ' : BasedStack.{vโ‚, vโ‚, max uโ‚ vโ‚, max uโ‚ vโ‚} (Over U) (J.over U)) :
    (๐’ฎ โŸถ ๐’ฎ') โ‰ƒ
      StackPairHom U J hU (stackConstructionA U J hU ๐’ฎ) (stackConstructionA U J hU ๐’ฎ')

CategoryTheory.Over.stackConstructionHomโ‚‚Equiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/StacksAndLocalization.lean, line 629.

Construction A is bijective on 2-morphisms, and is the identity on the underlying morphism of functors.

def stackConstructionHomโ‚‚Equiv
    {๐’ฎ ๐’ฎ' : BasedStack.{vโ‚, vโ‚, max uโ‚ vโ‚, max uโ‚ vโ‚} (Over U) (J.over U)} (f g : ๐’ฎ โŸถ ๐’ฎ') :
    (f โŸถ g) โ‰ƒ StackPairHomโ‚‚ U J hU (stackConstructionHomEquiv U J hU ๐’ฎ ๐’ฎ' f)
      (stackConstructionHomEquiv U J hU ๐’ฎ ๐’ฎ' g)

CategoryTheory.Over.isStack_of_comp_forget, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/StacksOverSlice.lean, line 305.

Construction B of Stacks 04WV, at the level of stacks. Let U be an object of ๐’ž whose representable presheaf h_U is a sheaf, and let p : ๐’ฎ โฅค ๐’ž/U be a functor whose composite with the localization functor j_U is a stack over (๐’ž, J). Then p itself is a stack over the site (๐’ž/U, J.over U). This is the source's "in this case it is automatically the case that p : ๐’ฏ โ†’ ๐’ž/U is a stack over ๐’ž/U".

The proof is by reduction to three results rather than by a clause-by-clause verification:

  • the pushforward j_U^q ๐’ฎ of q = p โ‹™ j_U along j_U is a stack over (๐’ž/U, J.over U), by Stacks 04WC (CategoryTheory.StrictPullback.isStack_structureFunctor), j_U being a continuous functor of sites;
  • the full subcategory of j_U^q ๐’ฎ cut out by CategoryTheory.Over.LiesOverSlice is a stack, by Stacks 04TU (CategoryTheory.Functor.IsStack.fullSubcategory); this is the only place the hypothesis that h_U is a sheaf is used, in CategoryTheory.Over.locallyClosed_liesOverSlice;
  • ๐’ฎ is isomorphic to that full subcategory as a category over ๐’ž/U, so it is a stack by Stacks 042W (CategoryTheory.BasedCategory.Equivalence.isStack).

Two costs of this route, both stated here rather than hidden.

  • It carries the hypothesis [HasPullbacks ๐’ž], which Stacks 04WV does not. It is inherited from Stacks 04WC, whose proof genuinely uses fibre products in the source site (CategoryTheory.StrictPullback.glue); the source's notion of a morphism of sites (Stacks 00WU) asks for them, and Mathlib's Functor.IsContinuous does not. So this is Construction B for a site with fibre products, which is a mild weakening of 04WV.
  • The universes are not pinned, and the earlier note here saying they were is superseded. The pushforward lives in Type (max uโ‚ vโ‚ uโ‚‚) with morphisms in max vโ‚ vโ‚‚, and ๐’ฎ used to be given there so that it and the full subcategory of the pushforward coincide; but the transport of the stack condition does not need that, because CategoryTheory.BasedCategory.Equivalence and Stacks 042W relate two categories over ๐’ž in independent object and morphism universes (CategoryTheory.BasedCategory.isStack_iff_of_equivalence), and CategoryTheory.Over.toSliceFullSub and CategoryTheory.Over.fromSliceFullSub are already stated at the file's general {๐’ฎ : Type uโ‚‚} [Category.{vโ‚‚} ๐’ฎ]. So the statement below is given at that generality. The previously pinned case is recompiled as an instance of it, at the two universe settings where it is used: CategoryTheory.Over.isStack_map_iff and CategoryTheory.Over.isStack_of_comp_forget_slice keep their own statements unchanged and only their explicit universe applications of this result move.
theorem isStack_of_comp_forget [HasPullbacks ๐’ž] {๐’ฎ : Type uโ‚‚} [Category.{vโ‚‚} ๐’ฎ]
    (p : ๐’ฎ โฅค Over U) {J : GrothendieckTopology ๐’ž}
    (hU : Presheaf.IsSheaf J (yoneda.obj U)) (hq : (p โ‹™ Over.forget U).IsStack J) :
    p.IsStack (J.over U)

CategoryTheory.Over.stackConstructionObjEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/CategoryTheory/Sites/Localization/StacksOverSlice.lean, line 425.

Constructions A and B of Stacks 04WV are mutually inverse on objects. A pair (๐’ฏ, p) carries no information beyond p, because "p is a 1-morphism of categories over ๐’ž" says exactly that the structure functor of ๐’ฏ is p โ‹™ j_U; and the two stack conditions agree, by CategoryTheory.Functor.isStack_comp_forget in one direction and CategoryTheory.Over.isStack_of_comp_forget in the other.

Together with CategoryTheory.Over.stackConstructionHomEquiv and CategoryTheory.Over.stackConstructionHomโ‚‚Equiv, which are bijections on 1-morphisms and on 2-morphisms compatible with identities, composition and whiskering, this exhibits Constructions A and B as mutually inverse functors of the two 2-categories.

def stackConstructionObjEquiv :
    BasedStack.{vโ‚, vโ‚, max uโ‚ vโ‚, max uโ‚ vโ‚} (Over U) (J.over U) โ‰ƒ StackPair U J hU
Sources

The dependency explorer needs JavaScript and its graph data.

Download the complete graph data.