Documentation

Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime

Descent data when we have pullbacks #

In this file, given a pseudofunctor F from LocallyDiscrete Cᵒᵖ to Cat, a family of maps f i : X i ⟶ S in the category C, chosen pullbacks sq and threefold wide pullbacks sq₃ for these morphisms, we define a category F.DescentData' sq sq₃ of objects over the X i equipped with a descent data relative to the morphisms f i : X i ⟶ S, where the data and compatibilities are expressed using the chosen pullbacks.

TODO #

noncomputable def CategoryTheory.Pseudofunctor.DescentData'.pullHom' {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) 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 (obj i₁) (F.map f₂.op.toLoc).toFunctor.obj (obj' i₂)

Variant of Pseudofunctor.LocallyDiscreteOpToCat.pullHom when we have chosen pullbacks.

Equations
Instances For
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_pullHom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) Y : C (q : Y S) i₁ i₂ : ι (f₁ : Y X i₁) (f₂ : Y X i₂) (p : Y (sq i₁ i₂).pullback) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hp₁ : CategoryStruct.comp p (sq i₁ i₂).p₁ = f₁ := by cat_disch) (hp₂ : CategoryStruct.comp p (sq i₁ i₂).p₂ = f₂ := by cat_disch) :
    pullHom' hom q f₁ f₂ hf₁ hf₂ = LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) p f₁ f₂
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_pullHom_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) Y : C (q : Y S) i₁ i₂ : ι (f₁ : Y X i₁) (f₂ : Y X i₂) (p : Y (sq i₁ i₂).pullback) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hp₁ : CategoryStruct.comp p (sq i₁ i₂).p₁ = f₁ := by cat_disch) (hp₂ : CategoryStruct.comp p (sq i₁ i₂).p₂ = f₂ := by cat_disch) {Z : (F.obj { as := Opposite.op Y })} (h : (F.map f₂.op.toLoc).toFunctor.obj (obj' i₂) Z) :
    CategoryStruct.comp (pullHom' hom q f₁ f₂ hf₁ hf₂) h = CategoryStruct.comp (LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) p f₁ f₂ ) h
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₂_eq_pullHom_of_chosenPullback₃ {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) :
    pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ = LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) (sq₃ i₁ i₂ i₃).p₁₂ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₂_eq_pullHom_of_chosenPullback₃_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) {Z : (F.obj { as := Opposite.op (sq₃ i₁ i₂ i₃).chosenPullback.pullback })} (h : (F.map (sq₃ i₁ i₂ i₃).p₂.op.toLoc).toFunctor.obj (obj' i₂) Z) :
    CategoryStruct.comp (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ) h = CategoryStruct.comp (LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) (sq₃ i₁ i₂ i₃).p₁₂ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ) h
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₃_eq_pullHom_of_chosenPullback₃ {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) :
    pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ = LocallyDiscreteOpToCat.pullHom (hom i₁ i₃) (sq₃ i₁ i₂ i₃).p₁₃ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₃_eq_pullHom_of_chosenPullback₃_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) {Z : (F.obj { as := Opposite.op (sq₃ i₁ i₂ i₃).chosenPullback.pullback })} (h : (F.map (sq₃ i₁ i₂ i₃).p₃.op.toLoc).toFunctor.obj (obj' i₃) Z) :
    CategoryStruct.comp (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ) h = CategoryStruct.comp (LocallyDiscreteOpToCat.pullHom (hom i₁ i₃) (sq₃ i₁ i₂ i₃).p₁₃ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ) h
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₂₃_eq_pullHom_of_chosenPullback₃ {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) :
    pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ = LocallyDiscreteOpToCat.pullHom (hom i₂ i₃) (sq₃ i₁ i₂ i₃).p₂₃ (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'₂₃_eq_pullHom_of_chosenPullback₃_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) (i₁ i₂ i₃ : ι) {Z : (F.obj { as := Opposite.op (sq₃ i₁ i₂ i₃).chosenPullback.pullback })} (h : (F.map (sq₃ i₁ i₂ i₃).p₃.op.toLoc).toFunctor.obj (obj' i₃) Z) :
    CategoryStruct.comp (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ) h = CategoryStruct.comp (LocallyDiscreteOpToCat.pullHom (hom i₂ i₃) (sq₃ i₁ i₂ i₃).p₂₃ (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ) h
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom_pullHom' {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) Y Y' : C (g : Y' Y) (q : Y S) (q' : Y' S) i₁ i₂ : ι (f₁ : Y X i₁) (f₂ : Y X i₂) (gf₁ : Y' X i₁) (gf₂ : Y' X i₂) (hq : CategoryStruct.comp g q = q' := by cat_disch) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hgf₁ : CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryStruct.comp g f₂ = gf₂ := by cat_disch) :
    LocallyDiscreteOpToCat.pullHom (pullHom' hom q f₁ f₂ hf₁ hf₂) g gf₁ gf₂ = pullHom' hom q' gf₁ gf₂
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom_pullHom'_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj obj' : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj' j)) Y Y' : C (g : Y' Y) (q : Y S) (q' : Y' S) i₁ i₂ : ι (f₁ : Y X i₁) (f₂ : Y X i₂) (gf₁ : Y' X i₁) (gf₂ : Y' X i₂) (hq : CategoryStruct.comp g q = q' := by cat_disch) (hf₁ : CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hgf₁ : CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryStruct.comp g f₂ = gf₂ := by cat_disch) {Z : (F.obj { as := Opposite.op Y' })} (h : (F.map gf₂.op.toLoc).toFunctor.obj (obj' i₂) Z) :
    CategoryStruct.comp (LocallyDiscreteOpToCat.pullHom (pullHom' hom q f₁ f₂ hf₁ hf₂) g gf₁ gf₂ ) h = CategoryStruct.comp (pullHom' hom q' gf₁ gf₂ ) h
    @[simp]
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_p₁_p₂ {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj j)) (i₁ i₂ : ι) :
    pullHom' hom (sq i₁ i₂).p (sq i₁ i₂).p₁ (sq i₁ i₂).p₂ = hom i₁ i₂
    theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self' {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {obj : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj j)) (hom_self : ∀ (i : ι), pullHom' hom (f i) (CategoryStruct.id (X i)) (CategoryStruct.id (X i)) = CategoryStruct.id ((F.map (CategoryStruct.id (X i)).op.toLoc).toFunctor.obj (obj i))) Y : C (q : Y S) i : ι (g : Y X i) (hg : CategoryStruct.comp g (f i) = q := by cat_disch) :
    pullHom' hom q g g hg hg = CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (obj i))
    theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom'' {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {obj : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj j)) (hom_comp : ∀ (i₁ i₂ i₃ : ι), CategoryStruct.comp (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ) (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ) = pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ) 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 (pullHom' hom q f₁ f₂ ) (pullHom' hom q f₂ f₃ ) = pullHom' hom q f₁ f₃
    theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom''_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {obj : (i : ι) → (F.obj { as := Opposite.op (X i) })} (hom : (i j : ι) → (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (obj i) (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (obj j)) (hom_comp : ∀ (i₁ i₂ i₃ : ι), CategoryStruct.comp (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ) (pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ) = pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ) 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) {Z : (F.obj { as := Opposite.op Y })} (h : (F.map f₃.op.toLoc).toFunctor.obj (obj i₃) Z) :
    CategoryStruct.comp (pullHom' hom q f₁ f₂ ) (CategoryStruct.comp (pullHom' hom q f₂ f₃ ) h) = CategoryStruct.comp (pullHom' hom q f₁ f₃ ) h
    structure CategoryTheory.Pseudofunctor.DescentData' {C : Type u} [Category.{v, u} C] (F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat) {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} (sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)) (sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) :
    Type (max (max t u') v')

    Given a pseudofunctor F from LocallyDiscrete Cᵒᵖ to Cat, a family of morphisms f i : X i ⟶ S, chosen pullbacks sq i j of f i and f j for all i and j, and chosen threefold wide pullbacks sq₃, this structure contains a description of objects over the X i equipped with a descent data relative to the morphisms f i, where the (iso)morphisms are compatibilities are considered over the chosen pullbacks.

    Instances For
      theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_hom_comp_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (self : F.DescentData' sq sq₃) (i₁ i₂ i₃ : ι) {Z : (F.obj { as := Opposite.op (sq₃ i₁ i₂ i₃).chosenPullback.pullback })} (h : (F.map (sq₃ i₁ i₂ i₃).p₃.op.toLoc).toFunctor.obj (self.obj i₃) Z) :
      CategoryStruct.comp (pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ) (CategoryStruct.comp (pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ) h) = CategoryStruct.comp (pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ) h
      @[simp]
      theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) Y : C (q : Y S) i : ι (g : Y X i) (hg : CategoryStruct.comp g (f i) = q := by cat_disch) :
      pullHom' D.hom q g g hg hg = CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (D.obj i))
      @[simp]
      theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom' {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) 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 := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hf₃ : CategoryStruct.comp f₃ (f i₃) = q := by cat_disch) :
      CategoryStruct.comp (pullHom' D.hom q f₁ f₂ hf₁ hf₂) (pullHom' D.hom q f₂ f₃ hf₂ hf₃) = pullHom' D.hom q f₁ f₃ hf₁ hf₃
      @[simp]
      theorem CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom'_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) 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 := by cat_disch) (hf₂ : CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hf₃ : CategoryStruct.comp f₃ (f i₃) = q := by cat_disch) {Z : (F.obj { as := Opposite.op Y })} (h : (F.map f₃.op.toLoc).toFunctor.obj (D.obj i₃) Z) :
      CategoryStruct.comp (pullHom' D.hom q f₁ f₂ hf₁ hf₂) (CategoryStruct.comp (pullHom' D.hom q f₂ f₃ hf₂ hf₃) h) = CategoryStruct.comp (pullHom' D.hom q f₁ f₃ hf₁ hf₃) h
      instance CategoryTheory.Pseudofunctor.DescentData'.instIsIsoαCategoryObjLocallyDiscreteOppositeCatMkOpPullHom'Hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) {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) :
      IsIso (pullHom' D.hom q f₁ f₂ hf₁ hf₂)
      theorem CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) (i₁ i₂ : ι) :
      pullHom' D.hom (CategoryStruct.comp (sq i₁ i₂).p₂ (f i₂)) (sq i₁ i₂).p₁ (sq i₁ i₂).p₂ = D.hom i₁ i₂
      instance CategoryTheory.Pseudofunctor.DescentData'.instIsIsoαCategoryObjLocallyDiscreteOppositeCatMkOpPullbackHom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) (i₁ i₂ : ι) :
      IsIso (D.hom i₁ i₂)
      structure CategoryTheory.Pseudofunctor.DescentData'.Hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D₁ D₂ : F.DescentData' sq sq₃) :
      Type (max t v')

      The type of morphisms in the category F.DescentData' sq sq₃.

      Instances For
        theorem CategoryTheory.Pseudofunctor.DescentData'.Hom.ext {C : Type u} {inst✝ : Category.{v, u} C} {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} {x y : D₁.Hom D₂} (hom : x.hom = y.hom) :
        x = y
        theorem CategoryTheory.Pseudofunctor.DescentData'.Hom.ext_iff {C : Type u} {inst✝ : Category.{v, u} C} {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} {x y : D₁.Hom D₂} :
        x = y x.hom = y.hom
        @[simp]
        theorem CategoryTheory.Pseudofunctor.DescentData'.Hom.comm_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (self : D₁.Hom D₂) (i₁ i₂ : ι) {Z : (F.obj { as := Opposite.op (sq i₁ i₂).pullback })} (h : (F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.obj (D₂.obj i₂) Z) :
        CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (self.hom i₁)) (CategoryStruct.comp (D₂.hom i₁ i₂) h) = CategoryStruct.comp (D₁.hom i₁ i₂) (CategoryStruct.comp ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (self.hom i₂)) h)
        @[implicit_reducible]
        instance CategoryTheory.Pseudofunctor.DescentData'.instQuiver {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} :
        Quiver (F.DescentData' sq sq₃)
        Equations
        @[implicit_reducible]
        instance CategoryTheory.Pseudofunctor.DescentData'.instCategory {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} :
        Equations
        • One or more equations did not get rendered due to their size.
        @[simp]
        theorem CategoryTheory.Pseudofunctor.DescentData'.comp_hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {X✝ Y✝ Z✝ : F.DescentData' sq sq₃} (f✝ : X✝ Y✝) (g : Y✝ Z✝) (i : ι) :
        @[simp]
        theorem CategoryTheory.Pseudofunctor.DescentData'.id_hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (x✝ : F.DescentData' sq sq₃) (x✝¹ : ι) :
        (CategoryStruct.id x✝).hom x✝¹ = CategoryStruct.id (x✝.obj x✝¹)
        theorem CategoryTheory.Pseudofunctor.DescentData'.comp_hom_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {X✝ Y✝ Z✝ : F.DescentData' sq sq₃} (f✝ : X✝ Y✝) (g : Y✝ Z✝) (i : ι) {Z : (F.obj { as := Opposite.op (X i) })} (h : Z✝.obj i Z) :
        theorem CategoryTheory.Pseudofunctor.DescentData'.hom_ext {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} {f✝ g : D₁ D₂} (h : ∀ (i : ι), f✝.hom i = g.hom i) :
        f✝ = g
        theorem CategoryTheory.Pseudofunctor.DescentData'.hom_ext_iff {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} {f✝ g : D₁ D₂} :
        f✝ = g ∀ (i : ι), f✝.hom i = g.hom i
        theorem CategoryTheory.Pseudofunctor.DescentData'.comm {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (φ : D₁ D₂) 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) :
        CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (φ.hom i₁)) (pullHom' D₂.hom q f₁ f₂ hf₁ hf₂) = CategoryStruct.comp (pullHom' D₁.hom q f₁ f₂ hf₁ hf₂) ((F.map f₂.op.toLoc).toFunctor.map (φ.hom i₂))
        theorem CategoryTheory.Pseudofunctor.DescentData'.comm_assoc {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (φ : D₁ D₂) 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) {Z : (F.obj { as := Opposite.op Y })} (h : (F.map f₂.op.toLoc).toFunctor.obj (D₂.obj i₂) Z) :
        CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (φ.hom i₁)) (CategoryStruct.comp (pullHom' D₂.hom q f₁ f₂ hf₁ hf₂) h) = CategoryStruct.comp (pullHom' D₁.hom q f₁ f₂ hf₁ hf₂) (CategoryStruct.comp ((F.map f₂.op.toLoc).toFunctor.map (φ.hom i₂)) h)
        def CategoryTheory.Pseudofunctor.DescentData'.isoMk {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (e : (i : ι) → D₁.obj i D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) :
        D₁ D₂

        Constructor for isomorphisms in the category F.DescentData' sq sq₃.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem CategoryTheory.Pseudofunctor.DescentData'.isoMk_hom_hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (e : (i : ι) → D₁.obj i D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) :
          (isoMk e comm).hom.hom i = (e i).hom
          @[simp]
          theorem CategoryTheory.Pseudofunctor.DescentData'.isoMk_inv_hom {C : Type u} [Category.{v, u} C] {F : Pseudofunctor (LocallyDiscrete Cᵒᵖ) Cat} {ι : Type t} {S : C} {X : ιC} {f : (i : ι) → X i S} {sq : (i j : ι) → Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (e : (i : ι) → D₁.obj i D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) :
          (isoMk e comm).inv.hom i = (e i).inv