Documentation

DerivedAlgGeo.CategoryTheory.Sites.Descent.StackInGroupoids

Stacks in groupoids #

This file packages Mathlib's stack condition together with the additional groupoid-valued requirement used in algebraic geometry. Covers and Čech descent are the existing Sieve, Presieve, and Pseudofunctor.DescentData objects: this layer does not replace them with parallel definitions.

The construction is owned by CategoryTheory/Sites: it is generic in a category and a Grothendieck topology and imports no algebraic geometry. The declarations use the matching CategoryTheory namespace.

StackInGroupoids deliberately contains no algebraicity, representability, boundedness, or finiteness assertion. The only conditions are groupoid-valued fibers and effective descent for a chosen Grothendieck topology.

structure CategoryTheory.StackInGroupoids (C : Type u) [Category.{v, u} C] (J : GrothendieckTopology C) :
Type (max (max u v) (w + 1))

A groupoid-valued pseudofunctor satisfying effective descent for J.

Instances For
    structure CategoryTheory.StackInGroupoids.Cover {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} (S : C) :
    Type (max (max (t + 1) u) v)

    An explicitly indexed covering family for a Grothendieck topology.

    • index : Type t

      The indexing type of the covering family.

    • obj : self.index → C

      Schemes or site objects in the covering family.

    • hom (i : self.index) : self.obj i ⟶ S

      The covering arrows.

    • mem : Sieve.ofArrows self.obj self.hom ∈ J S

      The arrows generate a covering sieve.

    Instances For
      @[reducible, inline]
      abbrev CategoryTheory.StackInGroupoids.CechDescent {C : Type u} [Category.{v, u} C] {J : GrothendieckTopology C} (F : StackInGroupoids C J) {S : C} (U : Cover S) :
      Type (max (max (max (max u_2 u) u_1) v) u_1)

      The category of Čech descent data for a covering family.

      Equations
      Instances For
        @[reducible, inline]

        Restrict an object and its morphisms to Čech descent data.

        Equations
        Instances For

          The stack condition identifies a fiber with the category of Čech descent data for every covering family.

          Equations
          Instances For

            Morphisms satisfy descent: restriction to a cover is fully faithful.

            Equations
            Instances For

              Objects satisfy effective descent: every Čech descent object comes from an object over the base, up to isomorphism.

              Refining the Grothendieck topology #

              Effective descent is antitone in the topology, and only in that direction. Every J₁-covering sieve is a J₂-covering sieve when J₁ ≤ J₂, so a stack for the finer topology is a stack for the coarser one. The converse is false and nothing below asserts it: descent for a coarse topology says nothing about the covers the finer topology adds. A consumer that needs the finer level has to prove it there.

              Effective descent for a finer topology gives effective descent for every coarser topology. This is the only implication between the two conditions; there is no reverse transport.

              def CategoryTheory.StackInGroupoids.ofLE {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) (F : StackInGroupoids C J₂) :

              Restrict a stack in groupoids along J₁ ≤ J₂ to the coarser topology. The pseudofunctor and its fibers are untouched; only the descent condition is weakened, so this loses information and cannot be inverted.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.StackInGroupoids.ofLE_presheaf {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) (F : StackInGroupoids C J₂) :
                def CategoryTheory.StackInGroupoids.Cover.ofLE {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) {S : C} (U : Cover S) :

                A covering family for a coarser topology is a covering family for a finer one, with the same index type and the same arrows.

                Equations
                Instances For
                  @[simp]
                  theorem CategoryTheory.StackInGroupoids.Cover.ofLE_hom {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) {S : C} (U : Cover S) (i : U.index) :
                  (ofLE h U).hom i = U.hom i
                  @[simp]
                  theorem CategoryTheory.StackInGroupoids.Cover.ofLE_obj {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) {S : C} (U : Cover S) (a✝ : U.index) :
                  (ofLE h U).obj a✝ = U.obj a✝
                  @[simp]
                  theorem CategoryTheory.StackInGroupoids.Cover.ofLE_index {C : Type u} [Category.{v, u} C] {J₁ J₂ : GrothendieckTopology C} (h : J₁ ≤ J₂) {S : C} (U : Cover S) :
                  (ofLE h U).index = U.index

                  Transport of the stack condition #

                  Descent-compatible equivalence data between two pseudofunctors.

                  Mathlib currently has the pseudofunctor and descent-data APIs but no general pseudonatural-equivalence API. This structure records exactly the two equivalences and comparison square needed to transport the stack condition; it does not hide them behind an unproved equivalence principle.

                  Instances For

                    The stack condition is invariant under descent-compatible equivalence.

                    Transport a stack in groupoids across descent-compatible equivalence. The groupoid condition on the target fibers remains explicit.

                    Equations
                    • F.ofEquivalence G e hG = { presheaf := G, fiberIsGroupoid := hG, isStack := ⋯ }
                    Instances For