Descent data #
In this file, given a pseudofunctor F from LocallyDiscrete Cᵒᵖ to Cat,
and a family of maps f i : X i ⟶ S in the category C,
we define the category F.DescentData f of objects over the X i
equipped with descent data relative to the morphisms f i : X i ⟶ S.
We show that up to an equivalence, the category F.DescentData f is unchanged
when we replace S by an isomorphic object, or the family f i : X i ⟶ S
by another family which generates the same sieve
(see Pseudofunctor.DescentData.pullFunctorEquivalence).
Given a presieve R, we introduce predicates F.IsPrestackFor R and F.IsStackFor R
saying the functor F.DescentData (fun (f : R.category) ↦ f.obj.hom) attached
to R is respectively fully faithful or an equivalence. We show that
F satisfies F.IsPrestack J for a Grothendieck topology J iff it
satisfies F.IsPrestackFor R.arrows for all covering sieves R.
TODO (@joelriou, @chrisflav) #
- Define stacks.
- Introduce multiple variants of
DescentData(whenChas pullbacks, whenFalso has a covariant functoriality, etc.).
Given a pseudofunctor F from LocallyDiscrete Cᵒᵖ to Cat, and a family of
morphisms f i : X i ⟶ S, the objects of the category of descent data for
the X i relative to the morphisms f i consist of families of
objects obj i in F.obj (.mk (op (X i))) together with morphisms hom
between the pullbacks of obj i₁ and obj i₂ over any object Y which maps
to both X i₁ and X i₂ (in a way that is compatible with the morphisms to S).
The compatibilities these morphisms satisfy imply that the morphisms hom are isomorphisms.
- obj (i : ι) : ↑(F.obj { as := Opposite.op (X i) })
The objects over
X ifor alli - hom ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (_hf₁ : CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (_hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : (F.map f₁.op.toLoc).toFunctor.obj (self.obj i₁) ⟶ (F.map f₂.op.toLoc).toFunctor.obj (self.obj i₂)
The compatibility morphisms after pullbacks. It follows from the conditions
hom_selfandhom_compthat these are isomorphisms, seeCategoryTheory.Pseudofunctor.DescentData.isobelow. - pullHom_hom ⦃Y' Y : C⦄ (g : Y' ⟶ Y) (q : Y ⟶ S) (q' : Y' ⟶ S) (hq : CategoryStruct.comp g q = q') ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q) (gf₁ : Y' ⟶ X i₁) (gf₂ : Y' ⟶ X i₂) (hgf₁ : CategoryStruct.comp g f₁ = gf₁) (hgf₂ : CategoryStruct.comp g f₂ = gf₂) : LocallyDiscreteOpToCat.pullHom (self.hom q f₁ f₂ ⋯ ⋯) g gf₁ gf₂ ⋯ ⋯ = self.hom q' gf₁ gf₂ ⋯ ⋯
- hom_comp ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ i₃ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (f₃ : Y ⟶ X i₃) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryStruct.comp f₃ (f i₃) = q) : CategoryStruct.comp (self.hom q f₁ f₂ hf₁ hf₂) (self.hom q f₂ f₃ hf₂ hf₃) = self.hom q f₁ f₃ hf₁ hf₃
Instances For
The morphisms DescentData.hom, as isomorphisms.
Equations
Instances For
The type of morphisms in the category Pseudofunctor.DescentData.
The morphisms between the
objfields of descent data.- comm ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q) : CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (self.hom i₁)) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (self.hom i₂))
Instances For
Equations
- One or more equations did not get rendered due to their size.
Given a family of morphisms f : X i ⟶ S, and M : F.obj (.mk (op S)),
this is the object in F.DescentData f that is obtained by pulling back M
over the X i.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Constructor for isomorphisms in Pseudofunctor.DescentData.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor F.obj (.mk (op S)) ⥤ F.DescentData f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for pullFunctor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Auxiliary definition for pullFunctor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a family of morphisms f : X i ⟶ S and f' : X' j ⟶ S', and suitable
commutative diagrams p' j ≫ f (α j) = f' j ≫ p, this is the
induced functor F.DescentData f ⥤ F.DescentData f'. (Up to a (unique) isomorphism,
this functor only depends on f and f', see pullFunctorIso.)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given families of morphisms f : X i ⟶ S and f' : X' j ⟶ S', suitable
commutative diagrams w j : p' j ≫ f (α j) = f' j ≫ p, this is the natural
isomorphism between the descent data relative to f' that are obtained either:
- by considering the obvious descent data relative to
fgiven by an objectM : F.obj (op S), followed by the application ofpullFunctor F w : F.DescentData f ⥤ F.DescentData f'; - by considering the obvious descent data relative to
f'given by pulling back the objectMtoS'.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Up to a (unique) isomorphism, the functor
pullFunctor : F.DescentData f ⥤ F.DescentData f' does not depend
on the auxiliary data.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The functor F.DescentData f ⥤ F.DescentData f corresponding to pullFunctor
applied to identity morphisms is isomorphic to the identity functor.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The composition of two functors pullFunctor is isomorphic to pullFunctor applied
to the compositions.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Up to an equivalence, the category DescentData for a pseudofunctor F and
a family of morphisms f : X i ⟶ S is unchanged when we replace S by an isomorphic object,
or when we replace f by another family which generate the same sieve.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Morphisms between objects in the image of the functor F.toDescentData f
identify to compatible families of sections of the presheaf F.presheafHom M N on
the object Over.mk (𝟙 S), relatively to the family of morphisms in Over S
corresponding to the family f.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The condition that a pseudofunctor satisfies the descent of morphisms relative to a presieve.
- nonempty_fullyFaithful : Nonempty (F.toDescentData fun (f : R.category) => f.obj.hom).FullyFaithful
Instances For
If R is a presieve such that F.IsPrestackFor R, then the functor
F.toDescentData (fun (f : R.category) ↦ f.obj.hom) is fully faithful.
Equations
- hF.fullyFaithful = ⋯.some
Instances For
The condition that a pseudofunctor has effective descent relative to a presieve.
- isEquivalence : (F.toDescentData fun (f : R.category) => f.obj.hom).IsEquivalence
Instances For
If F is a prestack for a Grothendieck topology J, and f is a covering
family of morphisms, then the functor F.toDescentData f is fully faithful.
Equations
- F.fullyFaithfulToDescentData f hf = ⋯.some