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) #
- 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
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
Instances For
Constructor for isomorphisms in Pseudofunctor.DescentData.
Equations
Instances For
The functor F.obj (.mk (op S)) ⥤ F.DescentData f.
Equations
Instances For
Auxiliary definition for pullFunctor.
Equations
Instances For
Auxiliary definition for pullFunctor.
Equations
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
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
Instances For
Up to a (unique) isomorphism, the functor
pullFunctor : F.DescentData f ⥤ F.DescentData f' does not depend
on the auxiliary data.
Equations
Instances For
The functor F.DescentData f ⥤ F.DescentData f corresponding to pullFunctor
applied to identity morphisms is isomorphic to the identity functor.
Equations
Instances For
The composition of two functors pullFunctor is isomorphic to pullFunctor applied
to the compositions.
Equations
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
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
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
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.