Loogle!
Result
Found 139 declarations mentioning Quiver.Hom.toLoc.
- Quiver.Hom.toLoc 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u} [CategoryTheory.CategoryStruct.{v, u} C] {a b : C} (f : a ⟶ b) : { as := a } ⟶ { as := b } - Quiver.Hom.id_toLoc 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u} [CategoryTheory.CategoryStruct.{v, u} C] (a : C) : (CategoryTheory.CategoryStruct.id a).toLoc = CategoryTheory.CategoryStruct.id { as := a } - Quiver.Hom.toLoc_as 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u} [CategoryTheory.CategoryStruct.{v, u} C] {a b : C} (f : a ⟶ b) : f.toLoc.as = f - CategoryTheory.LocallyDiscrete.eqToHom_toLoc 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u} [CategoryTheory.Category.{v, u} C] {a b : C} (h : a = b) : (CategoryTheory.eqToHom h).toLoc = CategoryTheory.eqToHom ⋯ - Quiver.Hom.comp_toLoc 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u} [CategoryTheory.CategoryStruct.{v, u} C] {a b c : C} (f : a ⟶ b) (g : b ⟶ c) : (CategoryTheory.CategoryStruct.comp f g).toLoc = CategoryTheory.CategoryStruct.comp f.toLoc g.toLoc - CategoryTheory.CommSq.toLoc 📋 Mathlib.CategoryTheory.Bicategory.LocallyDiscrete
{C : Type u_1} [CategoryTheory.Category.{u_2, u_1} C] {X₁ X₂ X₃ X₄ : C} {t : X₁ ⟶ X₂} {l : X₁ ⟶ X₃} {r : X₂ ⟶ X₄} {b : X₃ ⟶ X₄} (h : CategoryTheory.CommSq t l r b) : CategoryTheory.CommSq t.toLoc l.toLoc r.toLoc b.toLoc - CategoryTheory.Functor.toOplaxFunctor_map 📋 Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] (F : CategoryTheory.Functor C D) {X✝ Y✝ : CategoryTheory.LocallyDiscrete C} (x✝ : X✝ ⟶ Y✝) : F.toOplaxFunctor.map x✝ = match x✝ with | { as := f } => (F.map f).toLoc - CategoryTheory.Functor.toPseudofunctor_map 📋 Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] (F : CategoryTheory.Functor C D) {X✝ Y✝ : CategoryTheory.LocallyDiscrete C} (x✝ : X✝ ⟶ Y✝) : F.toPseudofunctor.map x✝ = match x✝ with | { as := f } => (F.map f).toLoc - CategoryTheory.Functor.toPseudofunctor_mapId 📋 Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] (F : CategoryTheory.Functor C D) (x✝ : CategoryTheory.LocallyDiscrete C) : F.toPseudofunctor.mapId x✝ = CategoryTheory.eqToIso ⋯ - CategoryTheory.Functor.toPseudofunctor_mapComp 📋 Mathlib.CategoryTheory.Bicategory.Functor.LocallyDiscrete
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] (F : CategoryTheory.Functor C D) {a✝ b✝ c✝ : CategoryTheory.LocallyDiscrete C} (x✝ : a✝ ⟶ b✝) (x✝¹ : b✝ ⟶ c✝) : F.toPseudofunctor.mapComp x✝ x✝¹ = match x✝ with | { as := f } => match x✝¹ with | { as := g } => CategoryTheory.eqToIso ⋯ - CategoryTheory.Pseudofunctor.Grothendieck.Hom.fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {X Y : F.Grothendieck} (self : X.Hom Y) : (F.map self.base.toLoc).toFunctor.obj X.fiber ⟶ Y.fiber - CategoryTheory.Pseudofunctor.Grothendieck.Hom.mk 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {X Y : F.Grothendieck} (base : X.base ⟶ Y.base) (fiber : (F.map base.toLoc).toFunctor.obj X.fiber ⟶ Y.fiber) : X.Hom Y - CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {X Y : F.CoGrothendieck} (self : X.Hom Y) : X.fiber ⟶ (F.map self.base.op.toLoc).toFunctor.obj Y.fiber - CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.mk 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {X Y : F.CoGrothendieck} (base : X.base ⟶ Y.base) (fiber : X.fiber ⟶ (F.map base.op.toLoc).toFunctor.obj Y.fiber) : X.Hom Y - CategoryTheory.Pseudofunctor.Grothendieck.Hom.congr 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {a b : F.Grothendieck} {f g : a ⟶ b} (h : f = g) : f.fiber = CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) g.fiber - CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {a b : F.Grothendieck} (f g : a ⟶ b) (hfg₁ : f.base = g.base) (hfg₂ : CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f.fiber = g.fiber) : f = g - CategoryTheory.Pseudofunctor.Grothendieck.Hom.ext_iff 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {a b : F.Grothendieck} (f g : a ⟶ b) : f = g ↔ ∃ (hfg : f.base = g.base), CategoryTheory.CategoryStruct.comp (CategoryTheory.eqToHom ⋯) f.fiber = g.fiber - CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.congr 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {a b : F.CoGrothendieck} {f g : a ⟶ b} (h : f = g) : f.fiber = CategoryTheory.CategoryStruct.comp g.fiber (CategoryTheory.eqToHom ⋯) - CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.ext 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {a b : F.CoGrothendieck} (f g : a ⟶ b) (hfg₁ : f.base = g.base) (hfg₂ : f.fiber = CategoryTheory.CategoryStruct.comp g.fiber (CategoryTheory.eqToHom ⋯)) : f = g - CategoryTheory.Pseudofunctor.CoGrothendieck.Hom.ext_iff 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {a b : F.CoGrothendieck} (f g : a ⟶ b) : f = g ↔ ∃ (hfg : f.base = g.base), f.fiber = CategoryTheory.CategoryStruct.comp g.fiber (CategoryTheory.eqToHom ⋯) - CategoryTheory.Pseudofunctor.Grothendieck.categoryStruct_comp_fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} {X x✝ x✝¹ : F.Grothendieck} (f : X.Hom x✝) (g : x✝.Hom x✝¹) : (CategoryTheory.CategoryStruct.comp f g).fiber = CategoryTheory.CategoryStruct.comp ((F.mapComp f.base.toLoc g.base.toLoc).hom.toNatTrans.app X.fiber) (CategoryTheory.CategoryStruct.comp ((F.map g.base.toLoc).toFunctor.map f.fiber) g.fiber) - CategoryTheory.Pseudofunctor.CoGrothendieck.categoryStruct_comp_fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} {x✝ x✝¹ Z : F.CoGrothendieck} (f : x✝.Hom x✝¹) (g : x✝¹.Hom Z) : (CategoryTheory.CategoryStruct.comp f g).fiber = CategoryTheory.CategoryStruct.comp f.fiber (CategoryTheory.CategoryStruct.comp ((F.map f.base.op.toLoc).toFunctor.map g.fiber) ((F.mapComp g.base.op.toLoc f.base.op.toLoc).inv.toNatTrans.app Z.fiber)) - CategoryTheory.Pseudofunctor.Grothendieck.map_map_fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F G : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮) CategoryTheory.Cat} (α : F ⟶ G) {a b : F.Grothendieck} (f : a ⟶ b) : ((CategoryTheory.Pseudofunctor.Grothendieck.map α).map f).fiber = CategoryTheory.CategoryStruct.comp ((α.naturality f.base.toLoc).inv.toNatTrans.app a.fiber) ((α.app { as := b.base }).toFunctor.map f.fiber) - CategoryTheory.Pseudofunctor.CoGrothendieck.map_map_fiber 📋 Mathlib.CategoryTheory.Bicategory.Grothendieck
{𝒮 : Type u₁} [CategoryTheory.Category.{v₁, u₁} 𝒮] {F G : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat} (α : F ⟶ G) {a b : F.CoGrothendieck} (f : a ⟶ b) : ((CategoryTheory.Pseudofunctor.CoGrothendieck.map α).map f).fiber = CategoryTheory.CategoryStruct.comp ((α.app { as := Opposite.op a.base }).toFunctor.map f.fiber) ((α.naturality f.base.op.toLoc).hom.toNatTrans.app b.fiber) - CategoryTheory.RetractArrow.toLoc 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : CategoryTheory.Bicategory.RetractArrow₁ f'.toLoc f.toLoc - CategoryTheory.RetractArrow.toLoc_i₁ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.i₁ = (CategoryTheory.Arrow.Hom.left r.i).toLoc - CategoryTheory.RetractArrow.toLoc_i₂ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.i₂ = (CategoryTheory.Arrow.Hom.right r.i).toLoc - CategoryTheory.RetractArrow.toLoc_r₁ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.r₁ = (CategoryTheory.Arrow.Hom.left r.r).toLoc - CategoryTheory.RetractArrow.toLoc_r₂ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.r₂ = (CategoryTheory.Arrow.Hom.right r.r).toLoc - CategoryTheory.RetractArrow.toLoc_id₁ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.id₁ = CategoryTheory.eqToIso ⋯ - CategoryTheory.RetractArrow.toLoc_id₂ 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.id₂ = CategoryTheory.eqToIso ⋯ - CategoryTheory.RetractArrow.toLoc_commi 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.commi = CategoryTheory.eqToIso ⋯ - CategoryTheory.RetractArrow.toLoc_commr 📋 Mathlib.CategoryTheory.Bicategory.RetractArrow
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y X' Y' : C} {f' : X' ⟶ Y'} {f : X ⟶ Y} (r : CategoryTheory.RetractArrow f' f) : r.toLoc.commr = CategoryTheory.eqToIso ⋯ - CategoryTheory.Pseudofunctor.CoGrothendieck.ι_map_fiber 📋 Mathlib.CategoryTheory.FiberedCategory.Grothendieck
{𝒮 : Type u_1} [CategoryTheory.Category.{v_1, u_1} 𝒮] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete 𝒮ᵒᵖ) CategoryTheory.Cat) (S : 𝒮) {a b : ↑(F.obj { as := Opposite.op S })} (φ : a ⟶ b) : ((CategoryTheory.Pseudofunctor.CoGrothendieck.ι F S).map φ).fiber = CategoryTheory.CategoryStruct.comp φ ((F.mapId { as := Opposite.op S }).inv.toNatTrans.app b) - CategoryTheory.Pseudofunctor.overMapCompPresheafHomIso 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {S : C} (M N : ↑(F.obj { as := Opposite.op S })) {S' : C} (q : S' ⟶ S) : (CategoryTheory.Over.map q).op.comp (F.presheafHom M N) ≅ F.presheafHom ((F.map q.op.toLoc).toFunctor.obj M) ((F.map q.op.toLoc).toFunctor.obj N) - CategoryTheory.Pseudofunctor.presheafHom_obj 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {S : C} (M N : ↑(F.obj { as := Opposite.op S })) (T : (CategoryTheory.Over S)ᵒᵖ) : (F.presheafHom M N).obj T = ((F.map (Opposite.unop T).hom.op.toLoc).toFunctor.obj M ⟶ (F.map (Opposite.unop T).hom.op.toLoc).toFunctor.obj N) - CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom_id 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} ⦃X₁ X₂ : C⦄ ⦃M₁ : ↑(F.obj { as := Opposite.op X₁ })⦄ ⦃M₂ : ↑(F.obj { as := Opposite.op X₂ })⦄ ⦃Y : C⦄ ⦃f₁ : Y ⟶ X₁⦄ ⦃f₂ : Y ⟶ X₂⦄ (φ : (F.map f₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map f₂.op.toLoc).toFunctor.obj M₂) : CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom φ (CategoryTheory.CategoryStruct.id Y) f₁ f₂ ⋯ ⋯ = φ - CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} ⦃X₁ X₂ : C⦄ ⦃M₁ : ↑(F.obj { as := Opposite.op X₁ })⦄ ⦃M₂ : ↑(F.obj { as := Opposite.op X₂ })⦄ ⦃Y : C⦄ ⦃f₁ : Y ⟶ X₁⦄ ⦃f₂ : Y ⟶ X₂⦄ (φ : (F.map f₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map f₂.op.toLoc).toFunctor.obj M₂) ⦃Y' : C⦄ (g : Y' ⟶ Y) (gf₁ : Y' ⟶ X₁) (gf₂ : Y' ⟶ X₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂ := by cat_disch) : (F.map gf₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map gf₂.op.toLoc).toFunctor.obj M₂ - CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom_pullHom 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} ⦃X₁ X₂ : C⦄ ⦃M₁ : ↑(F.obj { as := Opposite.op X₁ })⦄ ⦃M₂ : ↑(F.obj { as := Opposite.op X₂ })⦄ ⦃Y : C⦄ ⦃f₁ : Y ⟶ X₁⦄ ⦃f₂ : Y ⟶ X₂⦄ (φ : (F.map f₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map f₂.op.toLoc).toFunctor.obj M₂) ⦃Y' : C⦄ (g : Y' ⟶ Y) (gf₁ : Y' ⟶ X₁) (gf₂ : Y' ⟶ X₂) ⦃Y'' : C⦄ (g' : Y'' ⟶ Y') (g'f₁ : Y'' ⟶ X₁) (g'f₂ : Y'' ⟶ X₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂ := by cat_disch) (hg'f₁ : CategoryTheory.CategoryStruct.comp g' gf₁ = g'f₁ := by cat_disch) (hg'f₂ : CategoryTheory.CategoryStruct.comp g' gf₂ = g'f₂ := by cat_disch) : CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom φ g gf₁ gf₂ hgf₁ hgf₂) g' g'f₁ g'f₂ hg'f₁ hg'f₂ = CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom φ (CategoryTheory.CategoryStruct.comp g' g) g'f₁ g'f₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.presheafHom_map 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {S : C} (M N : ↑(F.obj { as := Opposite.op S })) {T₁ T₂ : (CategoryTheory.Over S)ᵒᵖ} (p : T₁ ⟶ T₂) : (F.presheafHom M N).map p = TypeCat.ofHom fun f => CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom f (CategoryTheory.Over.Hom.left p.unop) (Opposite.unop T₂).hom (Opposite.unop T₂).hom ⋯ ⋯ - CategoryTheory.Pseudofunctor.presheafHomObjHomEquiv_apply 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {S : C} {M N : ↑(F.obj { as := Opposite.op S })} (f : M ⟶ N) : F.presheafHomObjHomEquiv f = CategoryTheory.CategoryStruct.comp ((F.mapId { as := Opposite.op S }).hom.toNatTrans.app M) (CategoryTheory.CategoryStruct.comp f ((F.mapId { as := Opposite.op S }).inv.toNatTrans.app N)) - CategoryTheory.Pseudofunctor.presheafHomObjHomEquiv_symm_apply 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {S : C} {M N : ↑(F.obj { as := Opposite.op S })} (f : (F.map (Opposite.unop (Opposite.op (CategoryTheory.Over.mk (CategoryTheory.CategoryStruct.id S)))).hom.op.toLoc).toFunctor.obj M ⟶ (F.map (Opposite.unop (Opposite.op (CategoryTheory.Over.mk (CategoryTheory.CategoryStruct.id S)))).hom.op.toLoc).toFunctor.obj N) : F.presheafHomObjHomEquiv.symm f = CategoryTheory.CategoryStruct.comp ((F.mapId { as := Opposite.op S }).inv.toNatTrans.app M) (CategoryTheory.CategoryStruct.comp f ((F.mapId { as := Opposite.op S }).hom.toNatTrans.app N)) - CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.map_eq_pullHom 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} ⦃X₁ X₂ : C⦄ ⦃M₁ : ↑(F.obj { as := Opposite.op X₁ })⦄ ⦃M₂ : ↑(F.obj { as := Opposite.op X₂ })⦄ ⦃Y : C⦄ ⦃f₁ : Y ⟶ X₁⦄ ⦃f₂ : Y ⟶ X₂⦄ (φ : (F.map f₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map f₂.op.toLoc).toFunctor.obj M₂) ⦃Y' : C⦄ (g : Y' ⟶ Y) (gf₁ : Y' ⟶ X₁) (gf₂ : Y' ⟶ X₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂) : (F.map g.op.toLoc).toFunctor.map φ = CategoryTheory.CategoryStruct.comp ((F.mapComp' f₁.op.toLoc g.op.toLoc gf₁.op.toLoc ⋯).inv.toNatTrans.app M₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom φ g gf₁ gf₂ hgf₁ hgf₂) ((F.mapComp' f₂.op.toLoc g.op.toLoc gf₂.op.toLoc ⋯).hom.toNatTrans.app M₂)) - CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.map_eq_pullHom_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.IsPrestack
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} ⦃X₁ X₂ : C⦄ ⦃M₁ : ↑(F.obj { as := Opposite.op X₁ })⦄ ⦃M₂ : ↑(F.obj { as := Opposite.op X₂ })⦄ ⦃Y : C⦄ ⦃f₁ : Y ⟶ X₁⦄ ⦃f₂ : Y ⟶ X₂⦄ (φ : (F.map f₁.op.toLoc).toFunctor.obj M₁ ⟶ (F.map f₂.op.toLoc).toFunctor.obj M₂) ⦃Y' : C⦄ (g : Y' ⟶ Y) (gf₁ : Y' ⟶ X₁) (gf₂ : Y' ⟶ X₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂) {Z : ↑(F.obj { as := Opposite.op Y' })} (h : (F.map g.op.toLoc).toFunctor.obj ((F.map f₂.op.toLoc).toFunctor.obj M₂) ⟶ Z) : CategoryTheory.CategoryStruct.comp ((F.map g.op.toLoc).toFunctor.map φ) h = CategoryTheory.CategoryStruct.comp ((F.mapComp' f₁.op.toLoc g.op.toLoc gf₁.op.toLoc ⋯).inv.toNatTrans.app M₁) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom φ g gf₁ gf₂ hgf₁ hgf₂) (CategoryTheory.CategoryStruct.comp ((F.mapComp' f₂.op.toLoc g.op.toLoc gf₂.op.toLoc ⋯).hom.toNatTrans.app M₂) h)) - CategoryTheory.Pseudofunctor.DescentData.pullFunctorObj_obj 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) (D : F.DescentData f) (j : ι') : (CategoryTheory.Pseudofunctor.DescentData.pullFunctorObj w D).obj j = (F.map (p' j).op.toLoc).toFunctor.obj (D.obj (α j)) - CategoryTheory.Pseudofunctor.DescentData.ofObj_obj 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (M : ↑(F.obj { as := Opposite.op S })) (i : ι) : (CategoryTheory.Pseudofunctor.DescentData.ofObj M).obj i = (F.map (f i).op.toLoc).toFunctor.obj M - CategoryTheory.Pseudofunctor.DescentData.toDescentDataCompPullFunctorIso 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) : (F.toDescentData f).comp (CategoryTheory.Pseudofunctor.DescentData.pullFunctor F w) ≅ (F.map p.op.toLoc).toFunctor.comp (F.toDescentData f') - CategoryTheory.Pseudofunctor.DescentData.iso 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (_hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (_hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : (F.map f₁.op.toLoc).toFunctor.obj (D.obj i₁) ≅ (F.map f₂.op.toLoc).toFunctor.obj (D.obj i₂) - CategoryTheory.Pseudofunctor.DescentData.instIsIsoαCategoryObjLocallyDiscreteOppositeCatMkOpHom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (D : F.DescentData f) {Y : C} (q : Y ⟶ S) {i₁ i₂ : ι} (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) : CategoryTheory.IsIso (D.hom q f₁ f₂ hf₁ hf₂) - CategoryTheory.Pseudofunctor.DescentData.hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (_hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (_hf₂ : CategoryTheory.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₂) - CategoryTheory.Pseudofunctor.DescentData.pullHom_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentData f) ⦃Y' Y : C⦄ (g : Y' ⟶ Y) (q : Y ⟶ S) (q' : Y' ⟶ S) (hq : CategoryTheory.CategoryStruct.comp g q = q') ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (gf₁ : Y' ⟶ X i₁) (gf₂ : Y' ⟶ X i₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂) : CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (self.hom q f₁ f₂ ⋯ ⋯) g gf₁ gf₂ ⋯ ⋯ = self.hom q' gf₁ gf₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData.pullFunctor_map_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) {D₁ D₂ : F.DescentData f} (φ : D₁ ⟶ D₂) (j : ι') : ((CategoryTheory.Pseudofunctor.DescentData.pullFunctor F w).map φ).hom j = (F.map (p' j).op.toLoc).toFunctor.map (φ.hom (α j)) - CategoryTheory.Pseudofunctor.DescentData.hom_self 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i : ι⦄ (g : Y ⟶ X i) (x✝ : CategoryTheory.CategoryStruct.comp g (f i) = q) : self.hom q g g ⋯ ⋯ = CategoryTheory.CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (self.obj i)) - CategoryTheory.Pseudofunctor.toDescentData_map_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {ι : Type t} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) {M M' : ↑(F.obj { as := Opposite.op S })} (φ : M ⟶ M') (i : ι) : ((F.toDescentData f).map φ).hom i = (F.map (f i).op.toLoc).toFunctor.map φ - CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S') ⦃j₁ j₂ : ι'⦄ (f₁ : Y ⟶ X' j₁) (f₂ : Y ⟶ X' j₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f' j₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f' j₂) = q := by cat_disch) : (F.map f₁.op.toLoc).toFunctor.obj ((F.map (p' j₁).op.toLoc).toFunctor.obj (D.obj (α j₁))) ⟶ (F.map f₂.op.toLoc).toFunctor.obj ((F.map (p' j₂).op.toLoc).toFunctor.obj (D.obj (α j₂))) - CategoryTheory.Pseudofunctor.DescentData.pullFunctorObj_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) (D : F.DescentData f) (Y : C) (q : Y ⟶ S') (j₁ j₂ : ι') (f₁ : Y ⟶ X' j₁) (f₂ : Y ⟶ X' j₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f' j₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f' j₂) = q) : (CategoryTheory.Pseudofunctor.DescentData.pullFunctorObj w D).hom q f₁ f₂ hf₁ hf₂ = CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom w D (CategoryTheory.CategoryStruct.comp f₁ (f' j₁)) f₁ f₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData.iso_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (_hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (_hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : (D.iso q f₁ f₂ _hf₁ _hf₂).hom = D.hom q f₁ f₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData.iso_inv 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (_hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (_hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : (D.iso q f₁ f₂ _hf₁ _hf₂).inv = D.hom q f₂ f₁ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData.hom_comp 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ i₃ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (f₃ : Y ⟶ X i₃) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q) : CategoryTheory.CategoryStruct.comp (self.hom q f₁ f₂ hf₁ hf₂) (self.hom q f₂ f₃ hf₂ hf₃) = self.hom q f₁ f₃ hf₁ hf₃ - CategoryTheory.Pseudofunctor.DescentData.pullFunctorCompIso_hom_app_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) {S'' : C} {q : S'' ⟶ S'} {ι'' : Type t''} {X'' : ι'' → C} {f'' : (k : ι'') → X'' k ⟶ S''} {β : ι'' → ι'} {q' : (k : ι'') → X'' k ⟶ X' (β k)} (w' : ∀ (k : ι''), CategoryTheory.CategoryStruct.comp (q' k) (f' (β k)) = CategoryTheory.CategoryStruct.comp (f'' k) q) (r : S'' ⟶ S) {r' : (k : ι'') → X'' k ⟶ X (α (β k))} (hr : CategoryTheory.CategoryStruct.comp q p = r := by cat_disch) (hr' : ∀ (k : ι''), CategoryTheory.CategoryStruct.comp (q' k) (p' (β k)) = r' k := by cat_disch) (X✝ : F.DescentData f) (i : ι'') : ((CategoryTheory.Pseudofunctor.DescentData.pullFunctorCompIso F w w' r hr hr').hom.app X✝).hom i = (F.mapComp' (p' (β i)).op.toLoc (q' i).op.toLoc (r' i).op.toLoc ⋯).inv.toNatTrans.app (X✝.obj (α (β i))) - CategoryTheory.Pseudofunctor.DescentData.pullFunctorCompIso_inv_app_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat) {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) {S'' : C} {q : S'' ⟶ S'} {ι'' : Type t''} {X'' : ι'' → C} {f'' : (k : ι'') → X'' k ⟶ S''} {β : ι'' → ι'} {q' : (k : ι'') → X'' k ⟶ X' (β k)} (w' : ∀ (k : ι''), CategoryTheory.CategoryStruct.comp (q' k) (f' (β k)) = CategoryTheory.CategoryStruct.comp (f'' k) q) (r : S'' ⟶ S) {r' : (k : ι'') → X'' k ⟶ X (α (β k))} (hr : CategoryTheory.CategoryStruct.comp q p = r := by cat_disch) (hr' : ∀ (k : ι''), CategoryTheory.CategoryStruct.comp (q' k) (p' (β k)) = r' k := by cat_disch) (X✝ : F.DescentData f) (i : ι'') : ((CategoryTheory.Pseudofunctor.DescentData.pullFunctorCompIso F w w' r hr hr').inv.app X✝).hom i = (F.mapComp' (p' (β i)).op.toLoc (q' i).op.toLoc (r' i).op.toLoc ⋯).hom.toNatTrans.app (X✝.obj (α (β i))) - CategoryTheory.Pseudofunctor.DescentData.hom_comp_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ i₃ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (f₃ : Y ⟶ X i₃) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q) {Z : ↑(F.obj { as := Opposite.op Y })} (h : (F.map f₃.op.toLoc).toFunctor.obj (self.obj i₃) ⟶ Z) : CategoryTheory.CategoryStruct.comp (self.hom q f₁ f₂ hf₁ hf₂) (CategoryTheory.CategoryStruct.comp (self.hom q f₂ f₃ hf₂ hf₃) h) = CategoryTheory.CategoryStruct.comp (self.hom q f₁ f₃ hf₁ hf₃) h - CategoryTheory.Pseudofunctor.DescentData.Hom.comm 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (self : D₁.Hom D₂) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) : CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (self.hom i₁)) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (self.hom i₂)) - CategoryTheory.Pseudofunctor.DescentData.Hom.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (hom : (i : ι) → D₁.obj i ⟶ D₂.obj i) (comm : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q), CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (hom i₁)) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (hom i₂)) := by cat_disch) : D₁.Hom D₂ - CategoryTheory.Pseudofunctor.DescentData.isoMk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q), CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) : D₁ ≅ D₂ - CategoryTheory.Pseudofunctor.DescentData.isoMk_hom_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q), CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentData.isoMk e comm).hom.hom i = (e i).hom - CategoryTheory.Pseudofunctor.DescentData.isoMk_inv_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q), CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom q f₁ f₂ ⋯ ⋯) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) ((F.map f₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentData.isoMk e comm).inv.hom i = (e i).inv - CategoryTheory.Pseudofunctor.DescentData.Hom.comm_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentData f} (self : D₁.Hom D₂) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) {Z : ↑(F.obj { as := Opposite.op Y })} (h : (F.map f₂.op.toLoc).toFunctor.obj (D₂.obj i₂) ⟶ Z) : CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (self.hom i₁)) (CategoryTheory.CategoryStruct.comp (D₂.hom q f₁ f₂ ⋯ ⋯) h) = CategoryTheory.CategoryStruct.comp (D₁.hom q f₁ f₂ ⋯ ⋯) (CategoryTheory.CategoryStruct.comp ((F.map f₂.op.toLoc).toFunctor.map (self.hom i₂)) h) - CategoryTheory.Pseudofunctor.DescentData.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (obj : (i : ι) → ↑(F.obj { as := Opposite.op (X i) })) (hom : ⦃Y : C⦄ → (q : Y ⟶ S) → ⦃i₁ i₂ : ι⦄ → (f₁ : Y ⟶ X i₁) → (f₂ : Y ⟶ X i₂) → autoParam (CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) CategoryTheory.Pseudofunctor.DescentData._auto_1 → autoParam (CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) CategoryTheory.Pseudofunctor.DescentData._auto_3 → ((F.map f₁.op.toLoc).toFunctor.obj (obj i₁) ⟶ (F.map f₂.op.toLoc).toFunctor.obj (obj i₂))) (pullHom_hom : ∀ ⦃Y' Y : C⦄ (g : Y' ⟶ Y) (q : Y ⟶ S) (q' : Y' ⟶ S) (hq : CategoryTheory.CategoryStruct.comp g q = q') ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (gf₁ : Y' ⟶ X i₁) (gf₂ : Y' ⟶ X i₂) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂), CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom q f₁ f₂ ⋯ ⋯) g gf₁ gf₂ ⋯ ⋯ = hom q' gf₁ gf₂ ⋯ ⋯ := by cat_disch) (hom_self : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i : ι⦄ (g : Y ⟶ X i) (x : CategoryTheory.CategoryStruct.comp g (f i) = q), hom q g g ⋯ ⋯ = CategoryTheory.CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (obj i)) := by cat_disch) (hom_comp : ∀ ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ i₃ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (f₃ : Y ⟶ X i₃) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q), CategoryTheory.CategoryStruct.comp (hom q f₁ f₂ hf₁ hf₂) (hom q f₂ f₃ hf₂ hf₃) = hom q f₁ f₃ hf₁ hf₃ := by cat_disch) : F.DescentData f - CategoryTheory.Pseudofunctor.DescentData.ofObj_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (M : ↑(F.obj { as := Opposite.op S })) (Y : C) (q : Y ⟶ S) (i₁ i₂ : ι) (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) : (CategoryTheory.Pseudofunctor.DescentData.ofObj M).hom q f₁ f₂ hf₁ hf₂ = CategoryTheory.CategoryStruct.comp ((F.mapComp' (f i₁).op.toLoc f₁.op.toLoc q.op.toLoc ⋯).inv.toNatTrans.app M) ((F.mapComp' (f i₂).op.toLoc f₂.op.toLoc q.op.toLoc ⋯).hom.toNatTrans.app M) - CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom_eq 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S') ⦃j₁ j₂ : ι'⦄ (f₁ : Y ⟶ X' j₁) (f₂ : Y ⟶ X' j₂) (q' : Y ⟶ S) (f₁' : Y ⟶ X (α j₁)) (f₂' : Y ⟶ X (α j₂)) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f' j₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f' j₂) = q := by cat_disch) (hq' : CategoryTheory.CategoryStruct.comp q p = q' := by cat_disch) (hf₁' : CategoryTheory.CategoryStruct.comp f₁ (p' j₁) = f₁' := by cat_disch) (hf₂' : CategoryTheory.CategoryStruct.comp f₂ (p' j₂) = f₂' := by cat_disch) : CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom w D q f₁ f₂ ⋯ ⋯ = CategoryTheory.CategoryStruct.comp ((F.mapComp' (p' j₁).op.toLoc f₁.op.toLoc f₁'.op.toLoc ⋯).inv.toNatTrans.app (D.obj (α j₁))) (CategoryTheory.CategoryStruct.comp (D.hom q' f₁' f₂' ⋯ ⋯) ((F.mapComp' (p' j₂).op.toLoc f₂.op.toLoc f₂'.op.toLoc ⋯).hom.toNatTrans.app (D.obj (α j₂)))) - CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom_eq_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentData
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {S' : C} {p : S' ⟶ S} {ι' : Type t'} {X' : ι' → C} {f' : (j : ι') → X' j ⟶ S'} {α : ι' → ι} {p' : (j : ι') → X' j ⟶ X (α j)} (w : ∀ (j : ι'), CategoryTheory.CategoryStruct.comp (p' j) (f (α j)) = CategoryTheory.CategoryStruct.comp (f' j) p) (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S') ⦃j₁ j₂ : ι'⦄ (f₁ : Y ⟶ X' j₁) (f₂ : Y ⟶ X' j₂) (q' : Y ⟶ S) (f₁' : Y ⟶ X (α j₁)) (f₂' : Y ⟶ X (α j₂)) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f' j₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f' j₂) = q := by cat_disch) (hq' : CategoryTheory.CategoryStruct.comp q p = q' := by cat_disch) (hf₁' : CategoryTheory.CategoryStruct.comp f₁ (p' j₁) = f₁' := by cat_disch) (hf₂' : CategoryTheory.CategoryStruct.comp f₂ (p' j₂) = f₂' := by cat_disch) {Z : ↑(F.obj { as := Opposite.op Y })} (h : (F.map f₂.op.toLoc).toFunctor.obj ((F.map (p' j₂).op.toLoc).toFunctor.obj (D.obj (α j₂))) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData.pullFunctorObjHom w D q f₁ f₂ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp ((F.mapComp' (p' j₁).op.toLoc f₁.op.toLoc f₁'.op.toLoc ⋯).inv.toNatTrans.app (D.obj (α j₁))) (CategoryTheory.CategoryStruct.comp (D.hom q' f₁' f₂' ⋯ ⋯) (CategoryTheory.CategoryStruct.comp ((F.mapComp' (p' j₂).op.toLoc f₂.op.toLoc f₂'.op.toLoc ⋯).hom.toNatTrans.app (D.obj (α j₂))) h)) - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebra_obj_obj 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) {ι : Type t} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) (M : ↑(F.obj { as := Opposite.op S }).obj) (i : ι) : ((F.toDescentDataAsCoalgebra f).obj M).obj i = (F.map (f i).op.toLoc).l.toFunctor.obj M - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentDataAsCoalgebra f) (i₁ i₂ : ι) : self.obj i₁ ⟶ (F.map (f i₁).op.toLoc).l.toFunctor.obj ((F.map (f i₂).op.toLoc).r.toFunctor.obj (self.obj i₂)) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) : (F.DescentDataAsCoalgebra fun x => f) ≌ (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra - CategoryTheory.Pseudofunctor.isEquivalence_toDescentDataAsCoalgebra_iff_isEquivalence_comonadComparison 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) : (F.toDescentDataAsCoalgebra fun x => f).IsEquivalence ↔ (CategoryTheory.Comonad.comparison (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj)).IsEquivalence - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.counit 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentDataAsCoalgebra f) (i : ι) : CategoryTheory.CategoryStruct.comp (self.hom i i) ((F.map (f i).op.toLoc).adj.counit.toNatTrans.app (self.obj i)) = CategoryTheory.CategoryStruct.id (self.obj i) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.counit_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentDataAsCoalgebra f) (i : ι) {Z : ↑(F.obj { as := Opposite.op (X i) }).obj} (h : (CategoryTheory.CategoryStruct.id (F.obj { as := Opposite.op (X i) }).obj).toFunctor.obj (self.obj i) ⟶ Z) : CategoryTheory.CategoryStruct.comp (self.hom i i) (CategoryTheory.CategoryStruct.comp ((F.map (f i).op.toLoc).adj.counit.toNatTrans.app (self.obj i)) h) = h - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebra_obj_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) {ι : Type t} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) (M : ↑(F.obj { as := Opposite.op S }).obj) (i₁ i₂ : ι) : ((F.toDescentDataAsCoalgebra f).obj M).hom i₁ i₂ = (F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).adj.unit.toNatTrans.app M) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.Hom.comm 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (self : D₁.Hom D₂) (i₁ i₂ : ι) : CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (self.hom i₂))) = CategoryTheory.CategoryStruct.comp (self.hom i₁) (D₂.hom i₁ i₂) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.Hom.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (hom : (i : ι) → D₁.obj i ⟶ D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (hom i₂))) = CategoryTheory.CategoryStruct.comp (hom i₁) (D₂.hom i₁ i₂) := by cat_disch) : D₁.Hom D₂ - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (e i₂).hom)) = CategoryTheory.CategoryStruct.comp (e i₁).hom (D₂.hom i₁ i₂) := by cat_disch) : D₁ ≅ D₂ - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk_hom_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (e i₂).hom)) = CategoryTheory.CategoryStruct.comp (e i₁).hom (D₂.hom i₁ i₂) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk e comm).hom.hom i = (e i).hom - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk_inv_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (e : (i : ι) → D₁.obj i ≅ D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (e i₂).hom)) = CategoryTheory.CategoryStruct.comp (e i₁).hom (D₂.hom i₁ i₂) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.isoMk e comm).inv.hom i = (e i).inv - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_functor_obj_A 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (D : F.DescentDataAsCoalgebra fun x => f) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).functor.obj D).A = D.obj default - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.Hom.comm_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {D₁ D₂ : F.DescentDataAsCoalgebra f} (self : D₁.Hom D₂) (i₁ i₂ : ι) {Z : ↑(F.obj { as := Opposite.op (X i₁) }).obj} (h : (F.map (f i₁).op.toLoc).l.toFunctor.obj ((F.map (f i₂).op.toLoc).r.toFunctor.obj (D₂.obj i₂)) ⟶ Z) : CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) (CategoryTheory.CategoryStruct.comp ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (self.hom i₂))) h) = CategoryTheory.CategoryStruct.comp (self.hom i₁) (CategoryTheory.CategoryStruct.comp (D₂.hom i₁ i₂) h) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_functor_obj_a 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (D : F.DescentDataAsCoalgebra fun x => f) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).functor.obj D).a = D.hom default default - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_inverse_obj_obj 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (A : (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra) (x✝ : ι) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).inverse.obj A).obj x✝ = A.A - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebra_map_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) {ι : Type t} {S : C} {X : ι → C} (f : (i : ι) → X i ⟶ S) {X✝ Y✝ : ↑(F.obj { as := Opposite.op S }).obj} (g : X✝ ⟶ Y✝) (i : ι) : ((F.toDescentDataAsCoalgebra f).map g).hom i = (F.map (f i).op.toLoc).l.toFunctor.map g - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_functor_map_f 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) {X✝ Y✝ : F.DescentDataAsCoalgebra fun x => f} (φ : X✝ ⟶ Y✝) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).functor.map φ).f = φ.hom default - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} (ι : Type u_2) [Unique ι] {X S : C} (f : X ⟶ S) : (F.toDescentDataAsCoalgebra fun x => f).comp (CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).functor ≅ CategoryTheory.Comonad.comparison (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_inverse_obj_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (A : (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra) (x✝ x✝¹ : ι) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).inverse.obj A).hom x✝ x✝¹ = A.a - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coassoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentDataAsCoalgebra f) (i₁ i₂ i₃ : ι) : CategoryTheory.CategoryStruct.comp (self.hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (self.hom i₂ i₃))) = CategoryTheory.CategoryStruct.comp (self.hom i₁ i₃) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).adj.unit.toNatTrans.app ((F.map (f i₃).op.toLoc).r.toFunctor.1 (self.obj i₃)))) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coassoc_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (self : F.DescentDataAsCoalgebra f) (i₁ i₂ i₃ : ι) {Z : ↑(F.obj { as := Opposite.op (X i₁) }).obj} (h : (F.map (f i₁).op.toLoc).l.toFunctor.obj ((F.map (f i₂).op.toLoc).r.toFunctor.obj ((F.map (f i₂).op.toLoc).l.toFunctor.obj ((F.map (f i₃).op.toLoc).r.toFunctor.obj (self.obj i₃)))) ⟶ Z) : CategoryTheory.CategoryStruct.comp (self.hom i₁ i₂) (CategoryTheory.CategoryStruct.comp ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (self.hom i₂ i₃))) h) = CategoryTheory.CategoryStruct.comp (self.hom i₁ i₃) (CategoryTheory.CategoryStruct.comp ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).adj.unit.toNatTrans.app ((F.map (f i₃).op.toLoc).r.toFunctor.1 (self.obj i₃)))) h) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (obj : (i : ι) → ↑(F.obj { as := Opposite.op (X i) }).obj) (hom : (i₁ i₂ : ι) → obj i₁ ⟶ (F.map (f i₁).op.toLoc).l.toFunctor.obj ((F.map (f i₂).op.toLoc).r.toFunctor.obj (obj i₂))) (counit : ∀ (i : ι), CategoryTheory.CategoryStruct.comp (hom i i) ((F.map (f i).op.toLoc).adj.counit.toNatTrans.app (obj i)) = CategoryTheory.CategoryStruct.id (obj i) := by cat_disch) (coassoc : ∀ (i₁ i₂ i₃ : ι), CategoryTheory.CategoryStruct.comp (hom i₁ i₂) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).r.toFunctor.map (hom i₂ i₃))) = CategoryTheory.CategoryStruct.comp (hom i₁ i₃) ((F.map (f i₁).op.toLoc).l.toFunctor.map ((F.map (f i₂).op.toLoc).adj.unit.toNatTrans.app ((F.map (f i₃).op.toLoc).r.toFunctor.1 (obj i₃)))) := by cat_disch) : F.DescentDataAsCoalgebra f - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_inverse_map_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) {X✝ Y✝ : (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra} (φ : X✝ ⟶ Y✝) (i : ι) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).inverse.map φ).hom i = φ.f - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso_hom_app_f 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} (ι : Type u_2) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : ↑(F.obj { as := Opposite.op S }).obj) : ((CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso ι f).hom.app X✝).f = CategoryTheory.CategoryStruct.id ((F.map f.op.toLoc).l.toFunctor.obj X✝) - CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso_inv_app_f 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)} (ι : Type u_2) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : ↑(F.obj { as := Opposite.op S }).obj) : ((CategoryTheory.Pseudofunctor.toDescentDataAsCoalgebraCompCoalgebraEquivalenceFunctorIso ι f).inv.app X✝).f = CategoryTheory.CategoryStruct.id ((F.map f.op.toLoc).l.toFunctor.obj X✝) - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_unitIso_hom_app_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : F.DescentDataAsCoalgebra fun x => f) (i : ι) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).unitIso.hom.app X✝).hom i = CategoryTheory.eqToHom ⋯ - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_unitIso_inv_app_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : F.DescentDataAsCoalgebra fun x => f) (i : ι) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).unitIso.inv.app X✝).hom i = CategoryTheory.eqToHom ⋯ - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_counitIso_hom_app_f 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).counitIso.hom.app X✝).f = CategoryTheory.CategoryStruct.id X✝.A - CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence_counitIso_inv_app_f 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataAsCoalgebra
{C : Type u} [CategoryTheory.Category.{v, u} C] (F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) (CategoryTheory.Bicategory.Adj CategoryTheory.Cat)) (ι : Type u_1) [Unique ι] {X S : C} (f : X ⟶ S) (X✝ : (CategoryTheory.Adjunction.ofCat (F.map f.op.toLoc).adj).toComonad.Coalgebra) : ((CategoryTheory.Pseudofunctor.DescentDataAsCoalgebra.coalgebraEquivalence F ι f).counitIso.inv.app X✝).f = CategoryTheory.CategoryStruct.id X✝.A - CategoryTheory.Pseudofunctor.DescentData'.instIsIsoαCategoryObjLocallyDiscreteOppositeCatMkOpPullHom'Hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) : CategoryTheory.IsIso (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₁ f₂ hf₁ hf₂) - CategoryTheory.Pseudofunctor.DescentData'.instIsIsoαCategoryObjLocallyDiscreteOppositeCatMkOpPullbackHom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) (i₁ i₂ : ι) : CategoryTheory.IsIso (D.hom i₁ i₂) - CategoryTheory.Pseudofunctor.DescentData'.descentData_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) (x✝ : C) (x✝¹ : x✝ ⟶ S) (x✝² x✝³ : ι) (x✝⁴ : x✝ ⟶ X x✝²) (x✝⁵ : x✝ ⟶ X x✝³) (x✝⁶ : CategoryTheory.CategoryStruct.comp x✝⁴ (f x✝²) = x✝¹) (x✝⁷ : CategoryTheory.CategoryStruct.comp x✝⁵ (f x✝³) = x✝¹) : D.descentData.hom x✝¹ x✝⁴ x✝⁵ x✝⁶ x✝⁷ = CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom (CategoryTheory.CategoryStruct.comp x✝⁴ (f x✝²)) x✝⁴ x✝⁵ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_ofDescentData_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)) (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) (D : F.DescentData f) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i₁ i₂ : ι⦄ (f₁ : Y ⟶ X i₁) (f₂ : Y ⟶ X i₂) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' (CategoryTheory.Pseudofunctor.DescentData'.ofDescentData sq sq₃ D).hom q f₁ f₂ hf₁ hf₂ = D.hom q f₁ f₂ hf₁ hf₂ - CategoryTheory.Pseudofunctor.DescentData'.hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (self : F.DescentData' sq sq₃) (i j : ι) : (F.map (sq i j).p₁.op.toLoc).toFunctor.obj (self.obj i) ⟶ (F.map (sq i j).p₂.op.toLoc).toFunctor.obj (self.obj j) - CategoryTheory.Pseudofunctor.DescentData'.ofDescentData_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} (sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)) (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)) (D : F.DescentData f) (i₁ i₂ : ι) : (CategoryTheory.Pseudofunctor.DescentData'.ofDescentData sq sq₃ D).hom i₁ i₂ = D.hom (sq i₁ i₂).p (sq i₁ i₂).p₁ (sq i₁ i₂).p₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (D : F.DescentData' sq sq₃) (i₁ i₂ : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom (CategoryTheory.CategoryStruct.comp (sq i₁ i₂).p₂ (f i₂)) (sq i₁ i₂).p₁ (sq i₁ i₂).p₂ ⋯ ⋯ = D.hom i₁ i₂ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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 : CategoryTheory.CategoryStruct.comp g (f i) = q := by cat_disch) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q g g hg hg = CategoryTheory.CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (D.obj i)) - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_hom_self 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (self : F.DescentData' sq sq₃) (i : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (f i) (CategoryTheory.CategoryStruct.id (X i)) (CategoryTheory.CategoryStruct.id (X i)) ⋯ ⋯ = CategoryTheory.CategoryStruct.id ((F.map (CategoryTheory.CategoryStruct.id (X i)).op.toLoc).toFunctor.obj (self.obj i)) - CategoryTheory.Pseudofunctor.DescentData'.pullHom' 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.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₂) - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_p₁_p₂ 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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₂ : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq i₁ i₂).p (sq i₁ i₂).p₁ (sq i₁ i₂).p₂ ⋯ ⋯ = hom i₁ i₂ - CategoryTheory.Pseudofunctor.DescentData'.pullHom_pullHom' 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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 : CategoryTheory.CategoryStruct.comp g q = q' := by cat_disch) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryTheory.CategoryStruct.comp g f₂ = gf₂ := by cat_disch) : CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ hf₁ hf₂) g gf₁ gf₂ ⋯ ⋯ = CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q' gf₁ gf₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_pullHom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hp₁ : CategoryTheory.CategoryStruct.comp p (sq i₁ i₂).p₁ = f₁ := by cat_disch) (hp₂ : CategoryTheory.CategoryStruct.comp p (sq i₁ i₂).p₂ = f₂ := by cat_disch) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ hf₁ hf₂ = CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) p f₁ f₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom' 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q := by cat_disch) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₁ f₂ hf₁ hf₂) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₂ f₃ hf₂ hf₃) = CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₁ f₃ hf₁ hf₃ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₂_eq_pullHom_of_chosenPullback₃ 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₃ : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯ = CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) (sq₃ i₁ i₂ i₃).p₁₂ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₃_eq_pullHom_of_chosenPullback₃ 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₃ : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯ = CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₃) (sq₃ i₁ i₂ i₃).p₁₃ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₂₃_eq_pullHom_of_chosenPullback₃ 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₃ : ι) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯ = CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₂ i₃) (sq₃ i₁ i₂ i₃).p₂₃ (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_hom_comp 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} (self : F.DescentData' sq sq₃) (i₁ i₂ i₃ : ι) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) = CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom'_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hf₃ : CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₁ f₂ hf₁ hf₂) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₂ f₃ hf₂ hf₃) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D.hom q f₁ f₃ hf₁ hf₃) h - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_self' 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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 : ι), CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (f i) (CategoryTheory.CategoryStruct.id (X i)) (CategoryTheory.CategoryStruct.id (X i)) ⋯ ⋯ = CategoryTheory.CategoryStruct.id ((F.map (CategoryTheory.CategoryStruct.id (X i)).op.toLoc).toFunctor.obj (obj i))) ⦃Y : C⦄ (q : Y ⟶ S) ⦃i : ι⦄ (g : Y ⟶ X i) (hg : CategoryTheory.CategoryStruct.comp g (f i) = q := by cat_disch) : CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q g g hg hg = CategoryTheory.CategoryStruct.id ((F.map g.op.toLoc).toFunctor.obj (obj i)) - CategoryTheory.Pseudofunctor.DescentData'.pullHom_pullHom'_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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 : CategoryTheory.CategoryStruct.comp g q = q' := by cat_disch) (hf₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hgf₁ : CategoryTheory.CategoryStruct.comp g f₁ = gf₁ := by cat_disch) (hgf₂ : CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ hf₁ hf₂) g gf₁ gf₂ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q' gf₁ gf₂ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_eq_pullHom_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) (hp₁ : CategoryTheory.CategoryStruct.comp p (sq i₁ i₂).p₁ = f₁ := by cat_disch) (hp₂ : CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ hf₁ hf₂) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) p f₁ f₂ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.comm 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q := by cat_disch) : CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (φ.hom i₁)) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D₂.hom q f₁ f₂ hf₁ hf₂) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D₁.hom q f₁ f₂ hf₁ hf₂) ((F.map f₂.op.toLoc).toFunctor.map (φ.hom i₂)) - CategoryTheory.Pseudofunctor.DescentData'.Hom.comm 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (self : D₁.Hom D₂) (i₁ i₂ : ι) : CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (self.hom i₁)) (D₂.hom i₁ i₂) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (self.hom i₂)) - CategoryTheory.Pseudofunctor.DescentData'.Hom.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.Limits.ChosenPullback₃ (sq i₁ i₂) (sq i₂ i₃) (sq i₁ i₃)} {D₁ D₂ : F.DescentData' sq sq₃} (hom : (i : ι) → D₁.obj i ⟶ D₂.obj i) (comm : ∀ (i₁ i₂ : ι), CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (hom i₁)) (D₂.hom i₁ i₂) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (hom i₂)) := by cat_disch) : D₁.Hom D₂ - CategoryTheory.Pseudofunctor.DescentData'.isoMk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₂ : ι), CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) : D₁ ≅ D₂ - CategoryTheory.Pseudofunctor.DescentData'.isoMk_hom_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₂ : ι), CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentData'.isoMk e comm).hom.hom i = (e i).hom - CategoryTheory.Pseudofunctor.DescentData'.isoMk_inv_hom 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₂ : ι), CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (e i₁).hom) (D₂.hom i₁ i₂) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (e i₂).hom) := by cat_disch) (i : ι) : (CategoryTheory.Pseudofunctor.DescentData'.isoMk e comm).inv.hom i = (e i).inv - CategoryTheory.Pseudofunctor.DescentData'.comm_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q := by cat_disch) (hf₂ : CategoryTheory.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) : CategoryTheory.CategoryStruct.comp ((F.map f₁.op.toLoc).toFunctor.map (φ.hom i₁)) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D₂.hom q f₁ f₂ hf₁ hf₂) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' D₁.hom q f₁ f₂ hf₁ hf₂) (CategoryTheory.CategoryStruct.comp ((F.map f₂.op.toLoc).toFunctor.map (φ.hom i₂)) h) - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₂_eq_pullHom_of_chosenPullback₃_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₂) (sq₃ i₁ i₂ i₃).p₁₂ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₁₃_eq_pullHom_of_chosenPullback₃_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₁ i₃) (sq₃ i₁ i₂ i₃).p₁₃ (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.pullHom'₂₃_eq_pullHom_of_chosenPullback₃_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} (sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.LocallyDiscreteOpToCat.pullHom (hom i₂ i₃) (sq₃ i₁ i₂ i₃).p₂₃ (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.Hom.comm_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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) : CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₁.op.toLoc).toFunctor.map (self.hom i₁)) (CategoryTheory.CategoryStruct.comp (D₂.hom i₁ i₂) h) = CategoryTheory.CategoryStruct.comp (D₁.hom i₁ i₂) (CategoryTheory.CategoryStruct.comp ((F.map (sq i₁ i₂).p₂.op.toLoc).toFunctor.map (self.hom i₂)) h) - CategoryTheory.Pseudofunctor.DescentData'.mk 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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)) (pullHom'_hom_self : ∀ (i : ι), CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (f i) (CategoryTheory.CategoryStruct.id (X i)) (CategoryTheory.CategoryStruct.id (X i)) ⋯ ⋯ = CategoryTheory.CategoryStruct.id ((F.map (CategoryTheory.CategoryStruct.id (X i)).op.toLoc).toFunctor.obj (obj i))) (pullHom'_hom_comp : ∀ (i₁ i₂ i₃ : ι), CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) = CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) : F.DescentData' sq sq₃ - CategoryTheory.Pseudofunctor.DescentData'.pullHom'_hom_comp_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' self.hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) h - CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom'' 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₃ : ι), CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) = CategoryTheory.Pseudofunctor.DescentData'.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ ⋯ ⋯) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₂ f₃ ⋯ ⋯) = CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₃ ⋯ ⋯ - CategoryTheory.Pseudofunctor.DescentData'.comp_pullHom''_assoc 📋 Mathlib.CategoryTheory.Sites.Descent.DescentDataPrime
{C : Type u} [CategoryTheory.Category.{v, u} C] {F : CategoryTheory.Pseudofunctor (CategoryTheory.LocallyDiscrete Cᵒᵖ) CategoryTheory.Cat} {ι : Type t} {S : C} {X : ι → C} {f : (i : ι) → X i ⟶ S} {sq : (i j : ι) → CategoryTheory.Limits.ChosenPullback (f i) (f j)} {sq₃ : (i₁ i₂ i₃ : ι) → CategoryTheory.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₃ : ι), CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₁ (sq₃ i₁ i₂ i₃).p₂ ⋯ ⋯) (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom (sq₃ i₁ i₂ i₃).p (sq₃ i₁ i₂ i₃).p₂ (sq₃ i₁ i₂ i₃).p₃ ⋯ ⋯) = CategoryTheory.Pseudofunctor.DescentData'.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₁ : CategoryTheory.CategoryStruct.comp f₁ (f i₁) = q) (hf₂ : CategoryTheory.CategoryStruct.comp f₂ (f i₂) = q) (hf₃ : CategoryTheory.CategoryStruct.comp f₃ (f i₃) = q) {Z : ↑(F.obj { as := Opposite.op Y })} (h : (F.map f₃.op.toLoc).toFunctor.obj (obj i₃) ⟶ Z) : CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₂ ⋯ ⋯) (CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₂ f₃ ⋯ ⋯) h) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Pseudofunctor.DescentData'.pullHom' hom q f₁ f₃ ⋯ ⋯) h
About
Loogle searches Lean and Mathlib definitions and theorems.
You can use Loogle from within the Lean4 VSCode language extension
using the Loogle command from the command palette. You can also try the
#loogle command from LeanSearchClient,
the CLI version, the Loogle
VS Code extension, the lean.nvim
integration or the Zulip bot.
Usage
Loogle finds definitions and lemmas in various ways:
By constant:
🔍Real.sin
finds all lemmas whose statement somehow mentions the sine function.By lemma name substring:
🔍"differ"
finds all lemmas that have"differ"somewhere in their lemma name.By subexpression:
🔍_ * (_ ^ _)
finds all lemmas whose statements somewhere include a product where the second argument is raised to some power.The pattern can also be non-linear, as in
🔍Real.sqrt ?a * Real.sqrt ?aIf the pattern has parameters, they are matched in any order. Both of these will find
List.map:
🔍(?a -> ?b) -> List ?a -> List ?b
🔍List ?a -> (?a -> ?b) -> List ?bBy main conclusion:
🔍|- tsum _ = _ * tsum _
finds all lemmas where the conclusion (the subexpression to the right of all→and∀) has the given shape.As before, if the pattern has parameters, they are matched against the hypotheses of the lemma in any order; for example,
🔍|- _ < _ → tsum _ < tsum _
will findtsum_lt_tsumeven though the hypothesisf i < g iis not the last.You can filter for definitions vs theorems: Using
⊢ (_ : Type _)finds all definitions which provide data while⊢ (_ : Prop)finds all theorems (and definitions of proofs).
If you pass more than one such search filter, separated by commas
Loogle will return lemmas which match all of them. The
search
🔍 Real.sin, "two", tsum, _ * _, _ ^ _, |- _ < _ → _
would find all lemmas which mention the constants Real.sin
and tsum, have "two" as a substring of the
lemma name, include a product and a power somewhere in the type,
and have a hypothesis of the form _ < _ (if
there were any such lemmas). Metavariables (?a) are
assigned independently in each filter.
The #lucky button will directly send you to the
documentation of the first hit.
Source code
You can find the source code for this service at https://github.com/nomeata/loogle. The https://loogle.lean-lang.org/ service is provided by the Lean FRO. Please review the Lean FRO Terms of Use and Privacy Policy.
This is Loogle revision 9f11169 serving mathlib revision ce5dd8c