Loogle!
Result
Found 320 declarations mentioning CategoryTheory.Iso.trans. Of these, only the first 200 are shown.
- CategoryTheory.Iso.trans 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : X ≅ Z - CategoryTheory.Iso.refl_trans 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) : CategoryTheory.Iso.refl X ≪≫ α = α - CategoryTheory.Iso.trans_refl 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) : α ≪≫ CategoryTheory.Iso.refl Y = α - CategoryTheory.Iso.self_symm_id 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) : α ≪≫ α.symm = CategoryTheory.Iso.refl X - CategoryTheory.Iso.symm_self_id 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) : α.symm ≪≫ α = CategoryTheory.Iso.refl Y - CategoryTheory.Iso.self_symm_id_assoc 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : X ≅ Z) : α ≪≫ α.symm ≪≫ β = β - CategoryTheory.Iso.symm_self_id_assoc 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : α.symm ≪≫ α ≪≫ β = β - CategoryTheory.Iso.trans_symm 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : (α ≪≫ β).symm = β.symm ≪≫ α.symm - CategoryTheory.Iso.trans_assoc 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z Z' : C} (α : X ≅ Y) (β : Y ≅ Z) (γ : Z ≅ Z') : (α ≪≫ β) ≪≫ γ = α ≪≫ β ≪≫ γ - CategoryTheory.Iso.trans_hom 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : (α ≪≫ β).hom = CategoryTheory.CategoryStruct.comp α.hom β.hom - CategoryTheory.Iso.trans_inv 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : (α ≪≫ β).inv = CategoryTheory.CategoryStruct.comp β.inv α.inv - CategoryTheory.Iso.trans_def 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {a✝ b✝ c✝ : C} (α : a✝ ≅ b✝) (β : b✝ ≅ c✝) : Trans.trans α β = α ≪≫ β - CategoryTheory.Functor.mapIso_trans 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) {X Y Z : C} (i : X ≅ Y) (j : Y ≅ Z) : F.mapIso (i ≪≫ j) = F.mapIso i ≪≫ F.mapIso j - CategoryTheory.Iso.trans_mk 📋 Mathlib.CategoryTheory.Iso
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y Z : C} (hom : X ⟶ Y) (inv : Y ⟶ X) (hom_inv_id : CategoryTheory.CategoryStruct.comp hom inv = CategoryTheory.CategoryStruct.id X) (inv_hom_id : CategoryTheory.CategoryStruct.comp inv hom = CategoryTheory.CategoryStruct.id Y) (hom' : Y ⟶ Z) (inv' : Z ⟶ Y) (hom_inv_id' : CategoryTheory.CategoryStruct.comp hom' inv' = CategoryTheory.CategoryStruct.id Y) (inv_hom_id' : CategoryTheory.CategoryStruct.comp inv' hom' = CategoryTheory.CategoryStruct.id Z) (hom_inv_id'' : CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp hom hom') (CategoryTheory.CategoryStruct.comp inv' inv) = CategoryTheory.CategoryStruct.id X) (inv_hom_id'' : CategoryTheory.CategoryStruct.comp (CategoryTheory.CategoryStruct.comp inv' inv) (CategoryTheory.CategoryStruct.comp hom hom') = CategoryTheory.CategoryStruct.id Z) : { hom := hom, inv := inv, hom_inv_id := hom_inv_id, inv_hom_id := inv_hom_id } ≪≫ { hom := hom', inv := inv', hom_inv_id := hom_inv_id', inv_hom_id := inv_hom_id' } = { hom := CategoryTheory.CategoryStruct.comp hom hom', inv := CategoryTheory.CategoryStruct.comp inv' inv, hom_inv_id := hom_inv_id'', inv_hom_id := inv_hom_id'' } - CategoryTheory.NatIso.trans_app 📋 Mathlib.CategoryTheory.NatIso
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G H : CategoryTheory.Functor C D} (α : F ≅ G) (β : G ≅ H) (X : C) : (α ≪≫ β).app X = α.app X ≪≫ β.app X - Mathlib.Tactic.Reassoc.Iso.eq_whisker 📋 Mathlib.Tactic.CategoryTheory.IsoReassoc
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {X Y : C} {f g : X ≅ Y} (w : f = g) {Z : C} (h : Y ≅ Z) : f ≪≫ h = g ≪≫ h - CategoryTheory.Functor.isoWhiskerLeft_trans 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C D) {G H K : CategoryTheory.Functor D E} (α : G ≅ H) (β : H ≅ K) : F.isoWhiskerLeft (α ≪≫ β) = F.isoWhiskerLeft α ≪≫ F.isoWhiskerLeft β - CategoryTheory.Functor.isoWhiskerRight_trans 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {G H K : CategoryTheory.Functor C D} (α : G ≅ H) (β : H ≅ K) (F : CategoryTheory.Functor D E) : CategoryTheory.Functor.isoWhiskerRight (α ≪≫ β) F = CategoryTheory.Functor.isoWhiskerRight α F ≪≫ CategoryTheory.Functor.isoWhiskerRight β F - CategoryTheory.Functor.triangleIso 📋 Mathlib.CategoryTheory.Whiskering
{A : Type u₁} [CategoryTheory.Category.{v₁, u₁} A] {B : Type u₂} [CategoryTheory.Category.{v₂, u₂} B] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] (F : CategoryTheory.Functor A B) (G : CategoryTheory.Functor B C) : F.associator (CategoryTheory.Functor.id B) G ≪≫ F.isoWhiskerLeft G.leftUnitor = CategoryTheory.Functor.isoWhiskerRight F.rightUnitor G - CategoryTheory.Functor.isoWhiskerLeft_trans_isoWhiskerRight 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {F G : CategoryTheory.Functor C D} {H K : CategoryTheory.Functor D E} (α : F ≅ G) (β : H ≅ K) : F.isoWhiskerLeft β ≪≫ CategoryTheory.Functor.isoWhiskerRight α K = CategoryTheory.Functor.isoWhiskerRight α H ≪≫ G.isoWhiskerLeft β - CategoryTheory.Functor.isoWhiskerLeft_trans_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (F : CategoryTheory.Functor C D) {G H K : CategoryTheory.Functor D E} (α : G ≅ H) (β : H ≅ K) {Z : CategoryTheory.Functor C E} (h : F.comp K ≅ Z) : F.isoWhiskerLeft (α ≪≫ β) ≪≫ h = F.isoWhiskerLeft α ≪≫ F.isoWhiskerLeft β ≪≫ h - CategoryTheory.Functor.isoWhiskerRight_trans_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {G H K : CategoryTheory.Functor C D} (α : G ≅ H) (β : H ≅ K) (F : CategoryTheory.Functor D E) {Z : CategoryTheory.Functor C E} (h : K.comp F ≅ Z) : CategoryTheory.Functor.isoWhiskerRight (α ≪≫ β) F ≪≫ h = CategoryTheory.Functor.isoWhiskerRight α F ≪≫ CategoryTheory.Functor.isoWhiskerRight β F ≪≫ h - CategoryTheory.Functor.isoWhiskerLeft_trans_isoWhiskerRight_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {F G : CategoryTheory.Functor C D} {H K : CategoryTheory.Functor D E} (α : F ≅ G) (β : H ≅ K) {Z : CategoryTheory.Functor C E} (h : G.comp K ≅ Z) : F.isoWhiskerLeft β ≪≫ CategoryTheory.Functor.isoWhiskerRight α K ≪≫ h = CategoryTheory.Functor.isoWhiskerRight α H ≪≫ G.isoWhiskerLeft β ≪≫ h - CategoryTheory.Functor.triangleIso_assoc 📋 Mathlib.CategoryTheory.Whiskering
{A : Type u₁} [CategoryTheory.Category.{v₁, u₁} A] {B : Type u₂} [CategoryTheory.Category.{v₂, u₂} B] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] (F : CategoryTheory.Functor A B) (G : CategoryTheory.Functor B C) {Z : CategoryTheory.Functor A C} (h : F.comp G ≅ Z) : F.associator (CategoryTheory.Functor.id B) G ≪≫ F.isoWhiskerLeft G.leftUnitor ≪≫ h = CategoryTheory.Functor.isoWhiskerRight F.rightUnitor G ≪≫ h - CategoryTheory.Functor.isoWhiskerLeft_twice 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] (F : CategoryTheory.Functor B C) (G : CategoryTheory.Functor C D) {H K : CategoryTheory.Functor D E} (α : H ≅ K) : F.isoWhiskerLeft (G.isoWhiskerLeft α) = (F.associator G H).symm ≪≫ (F.comp G).isoWhiskerLeft α ≪≫ F.associator G K - CategoryTheory.Functor.isoWhiskerRight_twice 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {H K : CategoryTheory.Functor B C} (F : CategoryTheory.Functor C D) (G : CategoryTheory.Functor D E) (α : H ≅ K) : CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.isoWhiskerRight α F) G = H.associator F G ≪≫ CategoryTheory.Functor.isoWhiskerRight α (F.comp G) ≪≫ (K.associator F G).symm - CategoryTheory.Functor.isoWhiskerLeft_right 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] (F : CategoryTheory.Functor B C) {G H : CategoryTheory.Functor C D} (α : G ≅ H) (K : CategoryTheory.Functor D E) : F.isoWhiskerLeft (CategoryTheory.Functor.isoWhiskerRight α K) = (F.associator G K).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (F.isoWhiskerLeft α) K ≪≫ F.associator H K - CategoryTheory.Functor.isoWhiskerRight_left 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] (F : CategoryTheory.Functor B C) {G H : CategoryTheory.Functor C D} (α : G ≅ H) (K : CategoryTheory.Functor D E) : CategoryTheory.Functor.isoWhiskerRight (F.isoWhiskerLeft α) K = F.associator G K ≪≫ F.isoWhiskerLeft (CategoryTheory.Functor.isoWhiskerRight α K) ≪≫ (F.associator H K).symm - CategoryTheory.Functor.isoWhiskerRight_twice_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {H K : CategoryTheory.Functor B C} (F : CategoryTheory.Functor C D) (G : CategoryTheory.Functor D E) (α : H ≅ K) {Z : CategoryTheory.Functor B E} (h : (K.comp F).comp G ≅ Z) : CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.isoWhiskerRight α F) G ≪≫ h = H.associator F G ≪≫ CategoryTheory.Functor.isoWhiskerRight α (F.comp G) ≪≫ (K.associator F G).symm ≪≫ h - CategoryTheory.Functor.isoWhiskerLeft_right_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] (F : CategoryTheory.Functor B C) {G H : CategoryTheory.Functor C D} (α : G ≅ H) (K : CategoryTheory.Functor D E) {Z : CategoryTheory.Functor B E} (h : F.comp (H.comp K) ≅ Z) : F.isoWhiskerLeft (CategoryTheory.Functor.isoWhiskerRight α K) ≪≫ h = (F.associator G K).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (F.isoWhiskerLeft α) K ≪≫ F.associator H K ≪≫ h - CategoryTheory.Functor.isoWhiskerRight_left_assoc 📋 Mathlib.CategoryTheory.Whiskering
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] (F : CategoryTheory.Functor B C) {G H : CategoryTheory.Functor C D} (α : G ≅ H) (K : CategoryTheory.Functor D E) {Z : CategoryTheory.Functor B E} (h : (F.comp H).comp K ≅ Z) : CategoryTheory.Functor.isoWhiskerRight (F.isoWhiskerLeft α) K ≪≫ h = F.associator G K ≪≫ F.isoWhiskerLeft (CategoryTheory.Functor.isoWhiskerRight α K) ≪≫ (F.associator H K).symm ≪≫ h - CategoryTheory.Functor.pentagonIso 📋 Mathlib.CategoryTheory.Whiskering
{A : Type u₁} [CategoryTheory.Category.{v₁, u₁} A] {B : Type u₂} [CategoryTheory.Category.{v₂, u₂} B] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] {E : Type u₅} [CategoryTheory.Category.{v₅, u₅} E] (F : CategoryTheory.Functor A B) (G : CategoryTheory.Functor B C) (H : CategoryTheory.Functor C D) (K : CategoryTheory.Functor D E) : CategoryTheory.Functor.isoWhiskerRight (F.associator G H) K ≪≫ F.associator (G.comp H) K ≪≫ F.isoWhiskerLeft (G.associator H K) = (F.comp G).associator H K ≪≫ F.associator G (H.comp K) - CategoryTheory.Functor.pentagonIso_assoc 📋 Mathlib.CategoryTheory.Whiskering
{A : Type u₁} [CategoryTheory.Category.{v₁, u₁} A] {B : Type u₂} [CategoryTheory.Category.{v₂, u₂} B] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] {E : Type u₅} [CategoryTheory.Category.{v₅, u₅} E] (F : CategoryTheory.Functor A B) (G : CategoryTheory.Functor B C) (H : CategoryTheory.Functor C D) (K : CategoryTheory.Functor D E) {Z : CategoryTheory.Functor A E} (h : F.comp (G.comp (H.comp K)) ≅ Z) : CategoryTheory.Functor.isoWhiskerRight (F.associator G H) K ≪≫ F.associator (G.comp H) K ≪≫ F.isoWhiskerLeft (G.associator H K) ≪≫ h = (F.comp G).associator H K ≪≫ F.associator G (H.comp K) ≪≫ h - CategoryTheory.Equivalence.changeFunctor_trans 📋 Mathlib.CategoryTheory.Equivalence
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (e : C ≌ D) {G G' : CategoryTheory.Functor C D} (iso₁ : e.functor ≅ G) (iso₂ : G ≅ G') : (e.changeFunctor iso₁).changeFunctor iso₂ = e.changeFunctor (iso₁ ≪≫ iso₂) - CategoryTheory.Equivalence.trans_counitIso 📋 Mathlib.CategoryTheory.Equivalence
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (e : C ≌ D) (f : D ≌ E) : (e.trans f).counitIso = ((f.inverse.comp e.inverse).associator e.functor f.functor).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (f.inverse.associator e.inverse e.functor ≪≫ f.inverse.isoWhiskerLeft e.counitIso ≪≫ f.inverse.rightUnitor) f.functor ≪≫ f.counitIso - CategoryTheory.Equivalence.trans_unitIso 📋 Mathlib.CategoryTheory.Equivalence
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] (e : C ≌ D) (f : D ≌ E) : (e.trans f).unitIso = e.unitIso ≪≫ CategoryTheory.Functor.isoWhiskerRight (e.functor.rightUnitor.symm ≪≫ e.functor.isoWhiskerLeft f.unitIso ≪≫ (e.functor.associator f.functor f.inverse).symm) e.inverse ≪≫ (e.functor.comp f.functor).associator f.inverse e.inverse - CategoryTheory.Iso.op_trans 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (α : X ≅ Y) (β : Y ≅ Z) : (α ≪≫ β).op = β.op ≪≫ α.op - CategoryTheory.Iso.unop_trans 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : Cᵒᵖ} (α : X ≅ Y) (β : Y ≅ Z) : (α ≪≫ β).unop = β.unop ≪≫ α.unop - CategoryTheory.NatIso.op_trans 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G H : CategoryTheory.Functor C D} (α : F ≅ G) (β : G ≅ H) : CategoryTheory.NatIso.op (α ≪≫ β) = CategoryTheory.NatIso.op β ≪≫ CategoryTheory.NatIso.op α - CategoryTheory.NatIso.unop_trans 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G H : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} (α : F ≅ G) (β : G ≅ H) : CategoryTheory.NatIso.unop (α ≪≫ β) = CategoryTheory.NatIso.unop β ≪≫ CategoryTheory.NatIso.unop α - CategoryTheory.NatIso.op_isoWhiskerLeft 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G : CategoryTheory.Functor C D} {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] {H : CategoryTheory.Functor E C} (α : F ≅ G) : CategoryTheory.NatIso.op (H.isoWhiskerLeft α) = H.opComp G ≪≫ H.op.isoWhiskerLeft (CategoryTheory.NatIso.op α) ≪≫ (H.opComp F).symm - CategoryTheory.NatIso.op_isoWhiskerRight 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G : CategoryTheory.Functor C D} {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] {H : CategoryTheory.Functor D E} (α : F ≅ G) : CategoryTheory.NatIso.op (CategoryTheory.Functor.isoWhiskerRight α H) = G.opComp H ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.NatIso.op α) H.op ≪≫ (F.opComp H).symm - CategoryTheory.NatIso.unop_leftUnitor 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} : CategoryTheory.NatIso.unop F.leftUnitor = F.unop.leftUnitor.symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.unopId C).symm F.unop ≪≫ ((CategoryTheory.Functor.id Cᵒᵖ).unopComp F).symm - CategoryTheory.NatIso.unop_rightUnitor 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} : CategoryTheory.NatIso.unop F.rightUnitor = F.unop.rightUnitor.symm ≪≫ F.unop.isoWhiskerLeft (CategoryTheory.Functor.unopId D).symm ≪≫ (F.unopComp (CategoryTheory.Functor.id Dᵒᵖ)).symm - CategoryTheory.NatIso.unop_whiskerLeft 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] {H : CategoryTheory.Functor Eᵒᵖ Cᵒᵖ} (α : F ≅ G) : CategoryTheory.NatIso.unop (H.isoWhiskerLeft α) = H.unopComp G ≪≫ H.unop.isoWhiskerLeft (CategoryTheory.NatIso.unop α) ≪≫ (H.unopComp F).symm - CategoryTheory.NatIso.unop_whiskerRight 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F G : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} {E : Type u_1} [CategoryTheory.Category.{v_1, u_1} E] {H : CategoryTheory.Functor Dᵒᵖ Eᵒᵖ} (α : F ≅ G) : CategoryTheory.NatIso.unop (CategoryTheory.Functor.isoWhiskerRight α H) = G.unopComp H ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.NatIso.unop α) H.unop ≪≫ (F.unopComp H).symm - CategoryTheory.NatIso.op_leftUnitor 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} : CategoryTheory.NatIso.op F.leftUnitor = F.op.leftUnitor.symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.opId C).symm F.op ≪≫ ((CategoryTheory.Functor.id C).opComp F).symm - CategoryTheory.NatIso.op_rightUnitor 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} : CategoryTheory.NatIso.op F.rightUnitor = F.op.rightUnitor.symm ≪≫ F.op.isoWhiskerLeft (CategoryTheory.Functor.opId D).symm ≪≫ (F.opComp (CategoryTheory.Functor.id D)).symm - CategoryTheory.NatIso.unop_associator 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u_1} {E' : Type u_2} [CategoryTheory.Category.{v_1, u_1} E] [CategoryTheory.Category.{v_2, u_2} E'] {F : CategoryTheory.Functor Cᵒᵖ Dᵒᵖ} {G : CategoryTheory.Functor Dᵒᵖ Eᵒᵖ} {H : CategoryTheory.Functor Eᵒᵖ E'ᵒᵖ} : CategoryTheory.NatIso.unop (F.associator G H) = F.unopComp (G.comp H) ≪≫ F.unop.isoWhiskerLeft (G.unopComp H) ≪≫ (F.unop.associator G.unop H.unop).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (F.unopComp G).symm H.unop ≪≫ ((F.comp G).unopComp H).symm - CategoryTheory.NatIso.op_associator 📋 Mathlib.CategoryTheory.Opposites
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u_1} {E' : Type u_2} [CategoryTheory.Category.{v_1, u_1} E] [CategoryTheory.Category.{v_2, u_2} E'] {F : CategoryTheory.Functor C D} {G : CategoryTheory.Functor D E} {H : CategoryTheory.Functor E E'} : CategoryTheory.NatIso.op (F.associator G H) = F.opComp (G.comp H) ≪≫ F.op.isoWhiskerLeft (G.opComp H) ≪≫ (F.op.associator G.op H.op).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (F.opComp G).symm H.op ≪≫ ((F.comp G).opComp H).symm - CategoryTheory.eqToIso_trans 📋 Mathlib.CategoryTheory.EqToHom
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {X Y Z : C} (p : X = Y) (q : Y = Z) : CategoryTheory.eqToIso p ≪≫ CategoryTheory.eqToIso q = CategoryTheory.eqToIso ⋯ - CategoryTheory.eqToIso_map_trans 📋 Mathlib.CategoryTheory.EqToHom
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (F : CategoryTheory.Functor C D) {X Y Z : C} (p : X = Y) (q : Y = Z) : F.mapIso (CategoryTheory.eqToIso p) ≪≫ F.mapIso (CategoryTheory.eqToIso q) = F.mapIso (CategoryTheory.eqToIso ⋯) - CategoryTheory.Pi.isoApp_trans 📋 Mathlib.CategoryTheory.Pi.Basic
{I : Type w₀} {C : I → Type u₁} [(i : I) → CategoryTheory.Category.{v₁, u₁} (C i)] {X Y Z : (i : I) → C i} (f : X ≅ Y) (g : Y ≅ Z) (i : I) : CategoryTheory.Pi.isoApp (f ≪≫ g) i = CategoryTheory.Pi.isoApp f i ≪≫ CategoryTheory.Pi.isoApp g i - CategoryTheory.Pi.equivalenceOfEquiv_counitIso 📋 Mathlib.CategoryTheory.Pi.Basic
{I : Type w₀} {J : Type w₁} (C : I → Type u₁) [(i : I) → CategoryTheory.Category.{v₁, u₁} (C i)] (e : J ≃ I) : (CategoryTheory.Pi.equivalenceOfEquiv C e).counitIso = CategoryTheory.NatIso.pi' fun i => ((CategoryTheory.Functor.pi' fun i' => CategoryTheory.Pi.eval C (e i')).associator (CategoryTheory.Pi.eval (fun j => C (e j)) (e.symm i)) (CategoryTheory.Pi.eqToEquivalence C ⋯).functor).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.pi'CompEval (fun i' => CategoryTheory.Pi.eval C (e i')) (e.symm i)) (CategoryTheory.Pi.eqToEquivalence C ⋯).functor ≪≫ CategoryTheory.Pi.evalCompEqToEquivalenceFunctor C ⋯ ≪≫ (CategoryTheory.Pi.eval C i).leftUnitor.symm - CategoryTheory.Pi.equivalenceOfEquiv_unitIso 📋 Mathlib.CategoryTheory.Pi.Basic
{I : Type w₀} {J : Type w₁} (C : I → Type u₁) [(i : I) → CategoryTheory.Category.{v₁, u₁} (C i)] (e : J ≃ I) : (CategoryTheory.Pi.equivalenceOfEquiv C e).unitIso = CategoryTheory.NatIso.pi' fun i' => (CategoryTheory.Pi.eval (fun i => C (e i)) i').leftUnitor ≪≫ (CategoryTheory.Pi.evalCompEqToEquivalenceFunctor (fun j => C (e j)) ⋯).symm ≪≫ (CategoryTheory.Pi.eval (fun j => C (e j)) (e.symm (e i'))).isoWhiskerLeft (CategoryTheory.Pi.eqToEquivalenceFunctorIso C ⇑e ⋯).symm ≪≫ (CategoryTheory.Functor.pi'CompEval (CategoryTheory.Pi.eval (fun j => C (e j)) (e.symm (e i'))).comp (CategoryTheory.Pi.eqToEquivalence C ⋯).functor).symm ≪≫ (CategoryTheory.Functor.pi' (CategoryTheory.Pi.eval (fun j => C (e j)) (e.symm (e i'))).comp).isoWhiskerLeft (CategoryTheory.Functor.pi'CompEval (CategoryTheory.Pi.eval fun i => C (e i')) (CategoryTheory.Pi.eqToEquivalence C ⋯).functor).symm ≪≫ ((CategoryTheory.Functor.pi' (CategoryTheory.Pi.eval (fun j => C (e j)) (e.symm (e i'))).comp).associator (CategoryTheory.Functor.pi' (CategoryTheory.Pi.eval fun i => C (e i'))) (CategoryTheory.Pi.eval (fun i => C (e i')) (CategoryTheory.Pi.eqToEquivalence C ⋯).functor)).symm - CategoryTheory.Iso.toEquiv_comp 📋 Mathlib.CategoryTheory.Types.Basic
{X Y Z : Type u} (f : X ≅ Y) (g : Y ≅ Z) : (f ≪≫ g).toEquiv = f.toEquiv.trans g.toEquiv - CategoryTheory.Aut.Aut_mul_def 📋 Mathlib.CategoryTheory.Endomorphism
{C : Type u} [CategoryTheory.Category.{v, u} C] (X : C) (f g : CategoryTheory.Aut X) : f * g = g ≪≫ f - CategoryTheory.Iso.isoCongr_apply 📋 Mathlib.CategoryTheory.HomCongr
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ Y₁ X₂ Y₂ : C} (f : X₁ ≅ X₂) (g : Y₁ ≅ Y₂) (h : X₁ ≅ Y₁) : (f.isoCongr g) h = f.symm ≪≫ h ≪≫ g - CategoryTheory.Iso.isoCongr_symm_apply 📋 Mathlib.CategoryTheory.HomCongr
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ Y₁ X₂ Y₂ : C} (f : X₁ ≅ X₂) (g : Y₁ ≅ Y₂) (h : X₂ ≅ Y₂) : (f.isoCongr g).symm h = f ≪≫ h ≪≫ g.symm - CategoryTheory.Iso.homCongr_trans 📋 Mathlib.CategoryTheory.HomCongr
{C : Type u} [CategoryTheory.Category.{v, u} C] {X₁ Y₁ X₂ Y₂ X₃ Y₃ : C} (α₁ : X₁ ≅ X₂) (β₁ : Y₁ ≅ Y₂) (α₂ : X₂ ≅ X₃) (β₂ : Y₂ ≅ Y₃) (f : X₁ ⟶ Y₁) : ((α₁ ≪≫ α₂).homCongr (β₁ ≪≫ β₂)) f = ((α₁.homCongr β₁).trans (α₂.homCongr β₂)) f - CategoryTheory.Iso.conjAut_apply 📋 Mathlib.CategoryTheory.Conj
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) (f : CategoryTheory.Aut X) : α.conjAut f = α.symm ≪≫ f ≪≫ α - CategoryTheory.Iso.trans_conj 📋 Mathlib.CategoryTheory.Conj
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) {Z : C} (β : Y ≅ Z) (f : CategoryTheory.End X) : (α ≪≫ β).conj f = β.conj (α.conj f) - CategoryTheory.Iso.trans_conjAut 📋 Mathlib.CategoryTheory.Conj
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) {Z : C} (β : Y ≅ Z) (f : CategoryTheory.Aut X) : (α ≪≫ β).conjAut f = β.conjAut (α.conjAut f) - CategoryTheory.Iso.conjAut_trans 📋 Mathlib.CategoryTheory.Conj
{C : Type u} [CategoryTheory.Category.{v, u} C] {X Y : C} (α : X ≅ Y) (f g : CategoryTheory.Aut X) : α.conjAut (f ≪≫ g) = α.conjAut f ≪≫ α.conjAut g - CategoryTheory.Limits.Cocone.functorialityEquivalence_inverse 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cocone.functorialityEquivalence F e).inverse = (CategoryTheory.Limits.Cocone.functoriality (F.comp e.functor) e.inverse).comp (CategoryTheory.Limits.Cocone.precomposeEquivalence (F.associator e.functor e.inverse ≪≫ F.isoWhiskerLeft e.unitIso.symm ≪≫ F.rightUnitor)).functor - CategoryTheory.Limits.Cone.functorialityEquivalence_inverse 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cone.functorialityEquivalence F e).inverse = (CategoryTheory.Limits.Cone.functoriality (F.comp e.functor) e.inverse).comp (CategoryTheory.Limits.Cone.postcomposeEquivalence (F.associator e.functor e.inverse ≪≫ F.isoWhiskerLeft e.unitIso.symm ≪≫ F.rightUnitor)).functor - CategoryTheory.Limits.Cone.functorialityEquivalence_unitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cone.functorialityEquivalence F e).unitIso = CategoryTheory.NatIso.ofComponents (fun c => CategoryTheory.Limits.Cone.ext (e.unitIso.app ((CategoryTheory.Functor.id (CategoryTheory.Limits.Cone F)).obj c).1) ⋯) ⋯ - CategoryTheory.Limits.Cocone.functorialityEquivalence_unitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cocone.functorialityEquivalence F e).unitIso = CategoryTheory.NatIso.ofComponents' (fun c => CategoryTheory.Limits.Cocone.extInv (e.unitIso.app ((CategoryTheory.Functor.id (CategoryTheory.Limits.Cocone F)).obj c).pt) ⋯) ⋯ - CategoryTheory.Limits.Cocone.functorialityEquivalence_counitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cocone.functorialityEquivalence F e).counitIso = CategoryTheory.NatIso.ofComponents' (fun c => CategoryTheory.Limits.Cocone.extInv (e.counitIso.app c.pt) ⋯) ⋯ - CategoryTheory.Limits.Cone.functorialityEquivalence_counitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {D : Type u₄} [CategoryTheory.Category.{v₄, u₄} D] (F : CategoryTheory.Functor J C) (e : C ≌ D) : (CategoryTheory.Limits.Cone.functorialityEquivalence F e).counitIso = CategoryTheory.NatIso.ofComponents (fun c => CategoryTheory.Limits.Cone.ext (e.counitIso.app c.pt) ⋯) ⋯ - CategoryTheory.Limits.Cocone.equivalenceOfReindexing_counitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {G : CategoryTheory.Functor K C} (e : K ≌ J) (α : e.functor.comp F ≅ G) : (CategoryTheory.Limits.Cocone.equivalenceOfReindexing e α).counitIso = (((CategoryTheory.Limits.Cocone.precompose α.hom).comp ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv))).associator (CategoryTheory.Limits.Cocone.whiskering e.functor) (CategoryTheory.Limits.Cocone.precompose α.inv)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cocone.precompose α.hom).associator ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv)) (CategoryTheory.Limits.Cocone.whiskering e.functor)) (CategoryTheory.Limits.Cocone.precompose α.inv) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cocone.precompose α.hom).isoWhiskerLeft (CategoryTheory.NatIso.ofComponents' (fun s => CategoryTheory.Limits.Cocone.extInv (CategoryTheory.Iso.refl s.pt) ⋯) ⋯)) (CategoryTheory.Limits.Cocone.precompose α.inv) ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Limits.Cocone.precompose α.hom).rightUnitor (CategoryTheory.Limits.Cocone.precompose α.inv) ≪≫ CategoryTheory.NatIso.ofComponents' (fun s => CategoryTheory.Limits.Cocone.extInv (CategoryTheory.Iso.refl s.pt) ⋯) ⋯ - CategoryTheory.Limits.Cone.equivalenceOfReindexing_counitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {G : CategoryTheory.Functor K C} (e : K ≌ J) (α : e.functor.comp F ≅ G) : (CategoryTheory.Limits.Cone.equivalenceOfReindexing e α).counitIso = (((CategoryTheory.Limits.Cone.postcompose α.inv).comp ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom))).associator (CategoryTheory.Limits.Cone.whiskering e.functor) (CategoryTheory.Limits.Cone.postcompose α.hom)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cone.postcompose α.inv).associator ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom)) (CategoryTheory.Limits.Cone.whiskering e.functor)) (CategoryTheory.Limits.Cone.postcompose α.hom) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cone.postcompose α.inv).isoWhiskerLeft (CategoryTheory.NatIso.ofComponents (fun s => CategoryTheory.Limits.Cone.ext (CategoryTheory.Iso.refl s.pt) ⋯) ⋯)) (CategoryTheory.Limits.Cone.postcompose α.hom) ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Limits.Cone.postcompose α.inv).rightUnitor (CategoryTheory.Limits.Cone.postcompose α.hom) ≪≫ CategoryTheory.NatIso.ofComponents (fun s => CategoryTheory.Limits.Cone.ext (CategoryTheory.Iso.refl s.pt) ⋯) ⋯ - CategoryTheory.Limits.Cocone.equivalenceOfReindexing_unitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {G : CategoryTheory.Functor K C} (e : K ≌ J) (α : e.functor.comp F ≅ G) : (CategoryTheory.Limits.Cocone.equivalenceOfReindexing e α).unitIso = CategoryTheory.NatIso.ofComponents' (fun s => CategoryTheory.Limits.Cocone.extInv (CategoryTheory.Iso.refl s.pt) ⋯) ⋯ ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Limits.Cocone.whiskering e.functor).rightUnitor.symm ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv)) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cocone.whiskering e.functor).isoWhiskerLeft (CategoryTheory.NatIso.ofComponents' (fun s => CategoryTheory.Limits.Cocone.extInv (CategoryTheory.Iso.refl s.pt) ⋯) ⋯)) ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv)) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cocone.whiskering e.functor).associator (CategoryTheory.Limits.Cocone.precompose α.inv) (CategoryTheory.Limits.Cocone.precompose α.hom)).symm ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv)) ≪≫ ((CategoryTheory.Limits.Cocone.whiskering e.functor).comp (CategoryTheory.Limits.Cocone.precompose α.inv)).associator (CategoryTheory.Limits.Cocone.precompose α.hom) ((CategoryTheory.Limits.Cocone.whiskering e.inverse).comp (CategoryTheory.Limits.Cocone.precompose (e.invFunIdAssoc F).inv)) - CategoryTheory.Limits.Cone.equivalenceOfReindexing_unitIso 📋 Mathlib.CategoryTheory.Limits.Cones
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {G : CategoryTheory.Functor K C} (e : K ≌ J) (α : e.functor.comp F ≅ G) : (CategoryTheory.Limits.Cone.equivalenceOfReindexing e α).unitIso = CategoryTheory.NatIso.ofComponents (fun s => CategoryTheory.Limits.Cone.ext (CategoryTheory.Iso.refl s.pt) ⋯) ⋯ ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Limits.Cone.whiskering e.functor).rightUnitor.symm ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom)) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cone.whiskering e.functor).isoWhiskerLeft (CategoryTheory.NatIso.ofComponents (fun s => CategoryTheory.Limits.Cone.ext (CategoryTheory.Iso.refl s.pt) ⋯) ⋯)) ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom)) ≪≫ CategoryTheory.Functor.isoWhiskerRight ((CategoryTheory.Limits.Cone.whiskering e.functor).associator (CategoryTheory.Limits.Cone.postcompose α.hom) (CategoryTheory.Limits.Cone.postcompose α.inv)).symm ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom)) ≪≫ ((CategoryTheory.Limits.Cone.whiskering e.functor).comp (CategoryTheory.Limits.Cone.postcompose α.hom)).associator (CategoryTheory.Limits.Cone.postcompose α.inv) ((CategoryTheory.Limits.Cone.whiskering e.inverse).comp (CategoryTheory.Limits.Cone.postcompose (e.invFunIdAssoc F).hom)) - CategoryTheory.Limits.IsColimit.coconePointsIsoOfEquivalence_inv 📋 Mathlib.CategoryTheory.Limits.IsLimit
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {s : CategoryTheory.Limits.Cocone F} {G : CategoryTheory.Functor K C} {t : CategoryTheory.Limits.Cocone G} (P : CategoryTheory.Limits.IsColimit s) (Q : CategoryTheory.Limits.IsColimit t) (e : J ≌ K) (w : e.functor.comp G ≅ F) : (P.coconePointsIsoOfEquivalence Q e w).inv = Q.desc ((CategoryTheory.Limits.Cocone.equivalenceOfReindexing e.symm ((e.inverse.isoWhiskerLeft w).symm ≪≫ e.invFunIdAssoc G)).functor.obj s) - CategoryTheory.Limits.IsLimit.conePointsIsoOfEquivalence_hom 📋 Mathlib.CategoryTheory.Limits.IsLimit
{J : Type u₁} [CategoryTheory.Category.{v₁, u₁} J] {K : Type u₂} [CategoryTheory.Category.{v₂, u₂} K] {C : Type u₃} [CategoryTheory.Category.{v₃, u₃} C] {F : CategoryTheory.Functor J C} {s : CategoryTheory.Limits.Cone F} {G : CategoryTheory.Functor K C} {t : CategoryTheory.Limits.Cone G} (P : CategoryTheory.Limits.IsLimit s) (Q : CategoryTheory.Limits.IsLimit t) (e : J ≌ K) (w : e.functor.comp G ≅ F) : (P.conePointsIsoOfEquivalence Q e w).hom = Q.lift ((CategoryTheory.Limits.Cone.equivalenceOfReindexing e.symm ((e.inverse.isoWhiskerLeft w).symm ≪≫ e.invFunIdAssoc G)).functor.obj s) - CategoryTheory.Cat.Hom.toNatIso_rightUnitor 📋 Mathlib.CategoryTheory.Category.Cat
{B C : CategoryTheory.Cat} (F : B ⟶ C) : CategoryTheory.Cat.Hom.toNatIso (CategoryTheory.Bicategory.rightUnitor F) = CategoryTheory.eqToIso ⋯ ≪≫ F.toFunctor.rightUnitor ≪≫ CategoryTheory.eqToIso ⋯ - CategoryTheory.StructuredArrow.map₂Iso_counitIso 📋 Mathlib.CategoryTheory.Comma.StructuredArrow.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {A : Type u₃} [CategoryTheory.Category.{v₃, u₃} A] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {L : D} {R : CategoryTheory.Functor C D} {L' : B} {R' : CategoryTheory.Functor A B} {F : C ≌ A} {G : D ≌ B} (α : L' ⟶ G.functor.obj L) (α' : L ⟶ G.inverse.obj L') (β : R.comp G.functor ⟶ F.functor.comp R') (β' : R'.comp G.inverse ⟶ F.inverse.comp R) (hαα' : CategoryTheory.CategoryStruct.comp α (G.functor.map α') = G.counitIso.inv.app L') (hα'α : CategoryTheory.CategoryStruct.comp α' (G.inverse.map α) = G.unitIso.hom.app L) (hββ' : CategoryTheory.CategoryStruct.comp R.rightUnitor.hom (CategoryTheory.CategoryStruct.comp R.leftUnitor.inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.unitIso.hom R) (F.functor.associator F.inverse R).hom)) = CategoryTheory.CategoryStruct.comp (R.whiskerLeft G.unitIso.hom) (CategoryTheory.CategoryStruct.comp (R.associator G.functor G.inverse).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β G.inverse) (CategoryTheory.CategoryStruct.comp (F.functor.associator R' G.inverse).hom (F.functor.whiskerLeft β'))))) (hβ'β : CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β' G.functor) (CategoryTheory.CategoryStruct.comp (F.inverse.associator R G.functor).hom (CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft β) (CategoryTheory.CategoryStruct.comp (F.inverse.associator F.functor R').inv (CategoryTheory.Functor.whiskerRight F.counitIso.hom R')))) = CategoryTheory.CategoryStruct.comp (R'.associator G.inverse G.functor).hom (CategoryTheory.CategoryStruct.comp (R'.whiskerLeft G.counitIso.hom) (CategoryTheory.CategoryStruct.comp R'.rightUnitor.hom R'.leftUnitor.inv))) : (CategoryTheory.StructuredArrow.map₂Iso α α' β β' hαα' hα'α hββ' hβ'β).counitIso = CategoryTheory.StructuredArrow.map₂CompMap₂Iso α β α' β' ≪≫ CategoryTheory.StructuredArrow.map₂Congr (CategoryTheory.CategoryStruct.comp α (G.functor.map α')) (CategoryTheory.CategoryStruct.comp (R'.associator G.inverse G.functor).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β' G.functor) (CategoryTheory.CategoryStruct.comp (F.inverse.associator R G.functor).hom (CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft β) (F.inverse.associator F.functor R').inv)))) F.counitIso G.counitIso (CategoryTheory.CategoryStruct.id L') (CategoryTheory.CategoryStruct.comp R'.rightUnitor.hom R'.leftUnitor.inv) ⋯ ⋯ ≪≫ CategoryTheory.StructuredArrow.map₂IdIso L' (CategoryTheory.CategoryStruct.id L') (CategoryTheory.CategoryStruct.comp R'.rightUnitor.hom R'.leftUnitor.inv) ⋯ ⋯ - CategoryTheory.CostructuredArrow.map₂Iso_counitIso 📋 Mathlib.CategoryTheory.Comma.StructuredArrow.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {T : D} {S : CategoryTheory.Functor C D} {A : Type u₃} [CategoryTheory.Category.{v₃, u₃} A] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {U : CategoryTheory.Functor A B} {V : B} {F : C ≌ A} {G : D ≌ B} (α : F.functor.comp U ⟶ S.comp G.functor) (α' : F.inverse.comp S ⟶ U.comp G.inverse) (hα'α : CategoryTheory.CategoryStruct.comp S.leftUnitor.hom (CategoryTheory.CategoryStruct.comp S.rightUnitor.inv (CategoryTheory.CategoryStruct.comp (S.whiskerLeft G.unitIso.hom) (S.associator G.functor G.inverse).inv)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.unitIso.hom S) (CategoryTheory.CategoryStruct.comp (F.functor.associator F.inverse S).hom (CategoryTheory.CategoryStruct.comp (F.functor.whiskerLeft α') (CategoryTheory.CategoryStruct.comp (F.functor.associator U G.inverse).inv (CategoryTheory.Functor.whiskerRight α G.inverse))))) (hαα' : CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft α) (CategoryTheory.CategoryStruct.comp (F.inverse.associator S G.functor).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight α' G.functor) (CategoryTheory.CategoryStruct.comp (U.associator G.inverse G.functor).hom (U.whiskerLeft G.counitIso.hom)))) = CategoryTheory.CategoryStruct.comp (F.inverse.associator F.functor U).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.counitIso.hom U) (CategoryTheory.CategoryStruct.comp U.leftUnitor.hom U.rightUnitor.inv))) (β : G.functor.obj T ⟶ V) (β' : G.inverse.obj V ⟶ T) (hββ' : CategoryTheory.CategoryStruct.comp (G.inverse.map β) β' = G.unitIso.inv.app T) (hβ'β : CategoryTheory.CategoryStruct.comp (G.functor.map β') β = G.counitIso.hom.app V) : (CategoryTheory.CostructuredArrow.map₂Iso α α' hα'α hαα' β β' hββ' hβ'β).counitIso = CategoryTheory.CostructuredArrow.map₂CompMap₂Iso α β α' β' ≪≫ CategoryTheory.CostructuredArrow.map₂Congr (CategoryTheory.CategoryStruct.comp (F.inverse.associator F.functor U).hom (CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft α) (CategoryTheory.CategoryStruct.comp (F.inverse.associator S G.functor).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight α' G.functor) (U.associator G.inverse G.functor).hom)))) (CategoryTheory.CategoryStruct.comp (G.functor.map β') β) F.counitIso G.counitIso (CategoryTheory.CategoryStruct.comp U.leftUnitor.hom U.rightUnitor.inv) (CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id B).obj V)) ⋯ ⋯ ≪≫ CategoryTheory.CostructuredArrow.map₂IdIso (CategoryTheory.CategoryStruct.comp U.leftUnitor.hom U.rightUnitor.inv) V (CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id B).obj V)) ⋯ ⋯ - CategoryTheory.StructuredArrow.map₂Iso_unitIso 📋 Mathlib.CategoryTheory.Comma.StructuredArrow.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {A : Type u₃} [CategoryTheory.Category.{v₃, u₃} A] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {L : D} {R : CategoryTheory.Functor C D} {L' : B} {R' : CategoryTheory.Functor A B} {F : C ≌ A} {G : D ≌ B} (α : L' ⟶ G.functor.obj L) (α' : L ⟶ G.inverse.obj L') (β : R.comp G.functor ⟶ F.functor.comp R') (β' : R'.comp G.inverse ⟶ F.inverse.comp R) (hαα' : CategoryTheory.CategoryStruct.comp α (G.functor.map α') = G.counitIso.inv.app L') (hα'α : CategoryTheory.CategoryStruct.comp α' (G.inverse.map α) = G.unitIso.hom.app L) (hββ' : CategoryTheory.CategoryStruct.comp R.rightUnitor.hom (CategoryTheory.CategoryStruct.comp R.leftUnitor.inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.unitIso.hom R) (F.functor.associator F.inverse R).hom)) = CategoryTheory.CategoryStruct.comp (R.whiskerLeft G.unitIso.hom) (CategoryTheory.CategoryStruct.comp (R.associator G.functor G.inverse).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β G.inverse) (CategoryTheory.CategoryStruct.comp (F.functor.associator R' G.inverse).hom (F.functor.whiskerLeft β'))))) (hβ'β : CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β' G.functor) (CategoryTheory.CategoryStruct.comp (F.inverse.associator R G.functor).hom (CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft β) (CategoryTheory.CategoryStruct.comp (F.inverse.associator F.functor R').inv (CategoryTheory.Functor.whiskerRight F.counitIso.hom R')))) = CategoryTheory.CategoryStruct.comp (R'.associator G.inverse G.functor).hom (CategoryTheory.CategoryStruct.comp (R'.whiskerLeft G.counitIso.hom) (CategoryTheory.CategoryStruct.comp R'.rightUnitor.hom R'.leftUnitor.inv))) : (CategoryTheory.StructuredArrow.map₂Iso α α' β β' hαα' hα'α hββ' hβ'β).unitIso = (CategoryTheory.StructuredArrow.map₂IdIso L (CategoryTheory.CategoryStruct.id L) (CategoryTheory.CategoryStruct.comp R.rightUnitor.hom R.leftUnitor.inv) ⋯ ⋯).symm ≪≫ CategoryTheory.StructuredArrow.map₂Congr (CategoryTheory.CategoryStruct.id L) (CategoryTheory.CategoryStruct.comp R.rightUnitor.hom R.leftUnitor.inv) F.unitIso G.unitIso (CategoryTheory.CategoryStruct.comp α' (G.inverse.map α)) (CategoryTheory.CategoryStruct.comp (R.associator G.functor G.inverse).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight β G.inverse) (CategoryTheory.CategoryStruct.comp (F.functor.associator R' G.inverse).hom (CategoryTheory.CategoryStruct.comp (F.functor.whiskerLeft β') (F.functor.associator F.inverse R).inv)))) ⋯ ⋯ ≪≫ (CategoryTheory.StructuredArrow.map₂CompMap₂Iso α' β' α β).symm - CategoryTheory.CostructuredArrow.map₂Iso_unitIso 📋 Mathlib.CategoryTheory.Comma.StructuredArrow.Basic
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {T : D} {S : CategoryTheory.Functor C D} {A : Type u₃} [CategoryTheory.Category.{v₃, u₃} A] {B : Type u₄} [CategoryTheory.Category.{v₄, u₄} B] {U : CategoryTheory.Functor A B} {V : B} {F : C ≌ A} {G : D ≌ B} (α : F.functor.comp U ⟶ S.comp G.functor) (α' : F.inverse.comp S ⟶ U.comp G.inverse) (hα'α : CategoryTheory.CategoryStruct.comp S.leftUnitor.hom (CategoryTheory.CategoryStruct.comp S.rightUnitor.inv (CategoryTheory.CategoryStruct.comp (S.whiskerLeft G.unitIso.hom) (S.associator G.functor G.inverse).inv)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.unitIso.hom S) (CategoryTheory.CategoryStruct.comp (F.functor.associator F.inverse S).hom (CategoryTheory.CategoryStruct.comp (F.functor.whiskerLeft α') (CategoryTheory.CategoryStruct.comp (F.functor.associator U G.inverse).inv (CategoryTheory.Functor.whiskerRight α G.inverse))))) (hαα' : CategoryTheory.CategoryStruct.comp (F.inverse.whiskerLeft α) (CategoryTheory.CategoryStruct.comp (F.inverse.associator S G.functor).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight α' G.functor) (CategoryTheory.CategoryStruct.comp (U.associator G.inverse G.functor).hom (U.whiskerLeft G.counitIso.hom)))) = CategoryTheory.CategoryStruct.comp (F.inverse.associator F.functor U).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight F.counitIso.hom U) (CategoryTheory.CategoryStruct.comp U.leftUnitor.hom U.rightUnitor.inv))) (β : G.functor.obj T ⟶ V) (β' : G.inverse.obj V ⟶ T) (hββ' : CategoryTheory.CategoryStruct.comp (G.inverse.map β) β' = G.unitIso.inv.app T) (hβ'β : CategoryTheory.CategoryStruct.comp (G.functor.map β') β = G.counitIso.hom.app V) : (CategoryTheory.CostructuredArrow.map₂Iso α α' hα'α hαα' β β' hββ' hβ'β).unitIso = (CategoryTheory.CostructuredArrow.map₂IdIso (CategoryTheory.CategoryStruct.comp S.leftUnitor.hom S.rightUnitor.inv) T (CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id D).obj T)) ⋯ ⋯).symm ≪≫ CategoryTheory.CostructuredArrow.map₂Congr (CategoryTheory.CategoryStruct.comp S.leftUnitor.hom S.rightUnitor.inv) (CategoryTheory.CategoryStruct.id ((CategoryTheory.Functor.id D).obj T)) F.unitIso G.unitIso (CategoryTheory.CategoryStruct.comp (F.functor.associator F.inverse S).hom (CategoryTheory.CategoryStruct.comp (F.functor.whiskerLeft α') (CategoryTheory.CategoryStruct.comp (F.functor.associator U G.inverse).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.Functor.whiskerRight α G.inverse) (S.associator G.functor G.inverse).hom)))) (CategoryTheory.CategoryStruct.comp (G.inverse.map β) β') ⋯ ⋯ ≪≫ (CategoryTheory.CostructuredArrow.map₂CompMap₂Iso α' β' α β).symm - CategoryTheory.Limits.cokernelIsoOfEq_trans 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g h : X ⟶ Y} [CategoryTheory.Limits.HasCokernel f] [CategoryTheory.Limits.HasCokernel g] [CategoryTheory.Limits.HasCokernel h] (w₁ : f = g) (w₂ : g = h) : CategoryTheory.Limits.cokernelIsoOfEq w₁ ≪≫ CategoryTheory.Limits.cokernelIsoOfEq w₂ = CategoryTheory.Limits.cokernelIsoOfEq ⋯ - CategoryTheory.Limits.kernelIsoOfEq_trans 📋 Mathlib.CategoryTheory.Limits.Shapes.Kernels
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {X Y : C} {f g h : X ⟶ Y} [CategoryTheory.Limits.HasKernel f] [CategoryTheory.Limits.HasKernel g] [CategoryTheory.Limits.HasKernel h] (w₁ : f = g) (w₂ : g = h) : CategoryTheory.Limits.kernelIsoOfEq w₁ ≪≫ CategoryTheory.Limits.kernelIsoOfEq w₂ = CategoryTheory.Limits.kernelIsoOfEq ⋯ - AlgCat.restrictScalarsEquivalenceOfRingEquiv_unitIso 📋 Mathlib.Algebra.Category.AlgCat.Basic
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (e : R ≃+* S) : (AlgCat.restrictScalarsEquivalenceOfRingEquiv e).unitIso = (AlgCat.restrictScalarsId' (RingHom.id S) ⋯).symm ≪≫ AlgCat.restrictScalarsComp' e.symm.toRingHom e.toRingHom (RingHom.id S) ⋯ - AlgCat.restrictScalarsEquivalenceOfRingEquiv_counitIso 📋 Mathlib.Algebra.Category.AlgCat.Basic
{R : Type u_1} {S : Type u_2} [CommRing R] [CommRing S] (e : R ≃+* S) : (AlgCat.restrictScalarsEquivalenceOfRingEquiv e).counitIso = (AlgCat.restrictScalarsComp' e.toRingHom e.symm.toRingHom (RingHom.id R) ⋯).symm ≪≫ AlgCat.restrictScalarsId' (RingHom.id R) ⋯ - CategoryTheory.MonoidalCategory.tensorIso_def 📋 Mathlib.CategoryTheory.Monoidal.Category
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {X Y X' Y' : C} (f : X ≅ Y) (g : X' ≅ Y') : CategoryTheory.MonoidalCategory.tensorIso f g = CategoryTheory.MonoidalCategory.whiskerRightIso f X' ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso Y g - CategoryTheory.MonoidalCategory.tensorIso_def' 📋 Mathlib.CategoryTheory.Monoidal.Category
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {X Y X' Y' : C} (f : X ≅ Y) (g : X' ≅ Y') : CategoryTheory.MonoidalCategory.tensorIso f g = CategoryTheory.MonoidalCategory.whiskerLeftIso X g ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso f Y' - CategoryTheory.MonoidalCategory.whiskerLeftIso_trans 📋 Mathlib.CategoryTheory.Monoidal.Category
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (W : C) {X Y Z : C} (f : X ≅ Y) (g : Y ≅ Z) : CategoryTheory.MonoidalCategory.whiskerLeftIso W (f ≪≫ g) = CategoryTheory.MonoidalCategory.whiskerLeftIso W f ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso W g - CategoryTheory.MonoidalCategory.whiskerRightIso_trans 📋 Mathlib.CategoryTheory.Monoidal.Category
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {X Y Z : C} (f : X ≅ Y) (g : Y ≅ Z) (W : C) : CategoryTheory.MonoidalCategory.whiskerRightIso (f ≪≫ g) W = CategoryTheory.MonoidalCategory.whiskerRightIso f W ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso g W - CategoryTheory.Monoidal.InducingFunctorData.leftUnitor_eq 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategoryStruct D] {F : CategoryTheory.Functor D C} (self : CategoryTheory.Monoidal.InducingFunctorData F) (X : D) : F.map (CategoryTheory.MonoidalCategoryStruct.leftUnitor X).hom = (((self.μIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit D) X).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso self.εIso.symm (CategoryTheory.Iso.refl (F.obj X))) ≪≫ CategoryTheory.MonoidalCategoryStruct.leftUnitor (F.obj X)).hom - CategoryTheory.Monoidal.InducingFunctorData.rightUnitor_eq 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategoryStruct D] {F : CategoryTheory.Functor D C} (self : CategoryTheory.Monoidal.InducingFunctorData F) (X : D) : F.map (CategoryTheory.MonoidalCategoryStruct.rightUnitor X).hom = (((self.μIso X (CategoryTheory.MonoidalCategoryStruct.tensorUnit D)).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) self.εIso.symm) ≪≫ CategoryTheory.MonoidalCategoryStruct.rightUnitor (F.obj X)).hom - CategoryTheory.Monoidal.transportStruct_rightUnitor 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (e : C ≌ D) (X : D) : CategoryTheory.MonoidalCategoryStruct.rightUnitor X = e.functor.mapIso (CategoryTheory.MonoidalCategory.whiskerLeftIso (e.inverse.obj X) (e.unitIso.app (CategoryTheory.MonoidalCategoryStruct.tensorUnit C)).symm ≪≫ CategoryTheory.MonoidalCategoryStruct.rightUnitor (e.inverse.obj X)) ≪≫ e.counitIso.app X - CategoryTheory.Monoidal.transportStruct_leftUnitor 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (e : C ≌ D) (X : D) : CategoryTheory.MonoidalCategoryStruct.leftUnitor X = e.functor.mapIso (CategoryTheory.MonoidalCategory.whiskerRightIso (e.unitIso.app (CategoryTheory.MonoidalCategoryStruct.tensorUnit C)).symm (e.inverse.obj X) ≪≫ CategoryTheory.MonoidalCategoryStruct.leftUnitor (e.inverse.obj X)) ≪≫ e.counitIso.app X - CategoryTheory.Monoidal.InducingFunctorData.associator_eq 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategoryStruct D] {F : CategoryTheory.Functor D C} (self : CategoryTheory.Monoidal.InducingFunctorData F) (X Y Z : D) : F.map (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).hom = (((self.μIso (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y) Z).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (self.μIso X Y).symm (CategoryTheory.Iso.refl (F.obj Z))) ≪≫ CategoryTheory.MonoidalCategoryStruct.associator (F.obj X) (F.obj Y) (F.obj Z) ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) (self.μIso Y Z) ≪≫ self.μIso X (CategoryTheory.MonoidalCategoryStruct.tensorObj Y Z)).hom - CategoryTheory.Monoidal.transportStruct_associator 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] (e : C ≌ D) (X Y Z : D) : CategoryTheory.MonoidalCategoryStruct.associator X Y Z = e.functor.mapIso (CategoryTheory.MonoidalCategory.whiskerRightIso (e.unitIso.app (CategoryTheory.MonoidalCategoryStruct.tensorObj (e.inverse.obj X) (e.inverse.obj Y))).symm (e.inverse.obj Z) ≪≫ CategoryTheory.MonoidalCategoryStruct.associator (e.inverse.obj X) (e.inverse.obj Y) (e.inverse.obj Z) ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso (e.inverse.obj X) (e.unitIso.app (CategoryTheory.MonoidalCategoryStruct.tensorObj (e.inverse.obj Y) (e.inverse.obj Z)))) - CategoryTheory.Monoidal.InducingFunctorData.mk 📋 Mathlib.CategoryTheory.Monoidal.Transport
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategoryStruct D] {F : CategoryTheory.Functor D C} (μIso : (X Y : D) → CategoryTheory.MonoidalCategoryStruct.tensorObj (F.obj X) (F.obj Y) ≅ F.obj (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y)) (whiskerLeft_eq : ∀ (X : D) {Y₁ Y₂ : D} (f : Y₁ ⟶ Y₂), F.map (CategoryTheory.MonoidalCategoryStruct.whiskerLeft X f) = CategoryTheory.CategoryStruct.comp (μIso X Y₁).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategoryStruct.whiskerLeft (F.obj X) (F.map f)) (μIso X Y₂).hom) := by cat_disch) (whiskerRight_eq : ∀ {X₁ X₂ : D} (f : X₁ ⟶ X₂) (Y : D), F.map (CategoryTheory.MonoidalCategoryStruct.whiskerRight f Y) = CategoryTheory.CategoryStruct.comp (μIso X₁ Y).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategoryStruct.whiskerRight (F.map f) (F.obj Y)) (μIso X₂ Y).hom) := by cat_disch) (tensorHom_eq : ∀ {X₁ Y₁ X₂ Y₂ : D} (f : X₁ ⟶ Y₁) (g : X₂ ⟶ Y₂), F.map (CategoryTheory.MonoidalCategoryStruct.tensorHom f g) = CategoryTheory.CategoryStruct.comp (μIso X₁ X₂).inv (CategoryTheory.CategoryStruct.comp (CategoryTheory.MonoidalCategoryStruct.tensorHom (F.map f) (F.map g)) (μIso Y₁ Y₂).hom) := by cat_disch) (εIso : CategoryTheory.MonoidalCategoryStruct.tensorUnit C ≅ F.obj (CategoryTheory.MonoidalCategoryStruct.tensorUnit D)) (associator_eq : ∀ (X Y Z : D), F.map (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).hom = (((μIso (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y) Z).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (μIso X Y).symm (CategoryTheory.Iso.refl (F.obj Z))) ≪≫ CategoryTheory.MonoidalCategoryStruct.associator (F.obj X) (F.obj Y) (F.obj Z) ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) (μIso Y Z) ≪≫ μIso X (CategoryTheory.MonoidalCategoryStruct.tensorObj Y Z)).hom := by cat_disch) (leftUnitor_eq : ∀ (X : D), F.map (CategoryTheory.MonoidalCategoryStruct.leftUnitor X).hom = (((μIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit D) X).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso εIso.symm (CategoryTheory.Iso.refl (F.obj X))) ≪≫ CategoryTheory.MonoidalCategoryStruct.leftUnitor (F.obj X)).hom := by cat_disch) (rightUnitor_eq : ∀ (X : D), F.map (CategoryTheory.MonoidalCategoryStruct.rightUnitor X).hom = (((μIso X (CategoryTheory.MonoidalCategoryStruct.tensorUnit D)).symm ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.Iso.refl (F.obj X)) εIso.symm) ≪≫ CategoryTheory.MonoidalCategoryStruct.rightUnitor (F.obj X)).hom := by cat_disch) : CategoryTheory.Monoidal.InducingFunctorData F - CategoryTheory.rightDistributor_assoc 📋 Mathlib.CategoryTheory.Monoidal.Preadditive
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Finite J] (f : J → C) (X Y : C) : CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.rightDistributor f X) (CategoryTheory.asIso (CategoryTheory.CategoryStruct.id Y)) ≪≫ CategoryTheory.rightDistributor (fun j => CategoryTheory.MonoidalCategoryStruct.tensorObj (f j) X) Y = CategoryTheory.MonoidalCategoryStruct.associator (⨁ f) X Y ≪≫ CategoryTheory.rightDistributor f (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y) ≪≫ CategoryTheory.Limits.biproduct.mapIso fun x => (CategoryTheory.MonoidalCategoryStruct.associator (f x) X Y).symm - CategoryTheory.leftDistributor_assoc 📋 Mathlib.CategoryTheory.Monoidal.Preadditive
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Finite J] (X Y : C) (f : J → C) : (CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.asIso (CategoryTheory.CategoryStruct.id X)) (CategoryTheory.leftDistributor Y f) ≪≫ CategoryTheory.leftDistributor X fun j => CategoryTheory.MonoidalCategoryStruct.tensorObj Y (f j)) = (CategoryTheory.MonoidalCategoryStruct.associator X Y (⨁ f)).symm ≪≫ CategoryTheory.leftDistributor (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y) f ≪≫ CategoryTheory.Limits.biproduct.mapIso fun x => CategoryTheory.MonoidalCategoryStruct.associator X Y (f x) - CategoryTheory.leftDistributor_rightDistributor_assoc 📋 Mathlib.CategoryTheory.Monoidal.Preadditive
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.MonoidalPreadditive C] [CategoryTheory.Limits.HasFiniteBiproducts C] {J : Type} [Finite J] (X : C) (f : J → C) (Y : C) : CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.leftDistributor X f) (CategoryTheory.asIso (CategoryTheory.CategoryStruct.id Y)) ≪≫ CategoryTheory.rightDistributor (fun j => CategoryTheory.MonoidalCategoryStruct.tensorObj X (f j)) Y = CategoryTheory.MonoidalCategoryStruct.associator X (⨁ f) Y ≪≫ CategoryTheory.MonoidalCategory.tensorIso (CategoryTheory.asIso (CategoryTheory.CategoryStruct.id X)) (CategoryTheory.rightDistributor f Y) ≪≫ (CategoryTheory.leftDistributor X fun j => CategoryTheory.MonoidalCategoryStruct.tensorObj (f j) Y) ≪≫ CategoryTheory.Limits.biproduct.mapIso fun x => (CategoryTheory.MonoidalCategoryStruct.associator X (f x) Y).symm - CategoryTheory.MonoidalCoherence.left_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence X Y] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCategoryStruct.leftUnitor X ≪≫ CategoryTheory.MonoidalCoherence.iso - CategoryTheory.MonoidalCoherence.right_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence X Y] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCategoryStruct.rightUnitor X ≪≫ CategoryTheory.MonoidalCoherence.iso - CategoryTheory.MonoidalCoherence.left'_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence X Y] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCoherence.iso ≪≫ (CategoryTheory.MonoidalCategoryStruct.leftUnitor Y).symm - CategoryTheory.MonoidalCoherence.right'_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence X Y] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCoherence.iso ≪≫ (CategoryTheory.MonoidalCategoryStruct.rightUnitor Y).symm - CategoryTheory.MonoidalCoherence.tensor_right'_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence Y (CategoryTheory.MonoidalCategoryStruct.tensorUnit C)] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCategory.whiskerLeftIso X CategoryTheory.MonoidalCoherence.iso ≪≫ CategoryTheory.MonoidalCategoryStruct.rightUnitor X - CategoryTheory.MonoidalCoherence.tensor_right_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y : C) [CategoryTheory.MonoidalCoherence (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) Y] : CategoryTheory.MonoidalCoherence.iso = (CategoryTheory.MonoidalCategoryStruct.rightUnitor X).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso X CategoryTheory.MonoidalCoherence.iso - CategoryTheory.MonoidalCoherence.assoc_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (X Y Z W : C) [CategoryTheory.MonoidalCoherence (CategoryTheory.MonoidalCategoryStruct.tensorObj X (CategoryTheory.MonoidalCategoryStruct.tensorObj Y Z)) W] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCategoryStruct.associator X Y Z ≪≫ CategoryTheory.MonoidalCoherence.iso - CategoryTheory.MonoidalCoherence.assoc'_iso 📋 Mathlib.Tactic.CategoryTheory.MonoidalComp
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] (W X Y Z : C) [CategoryTheory.MonoidalCoherence W (CategoryTheory.MonoidalCategoryStruct.tensorObj X (CategoryTheory.MonoidalCategoryStruct.tensorObj Y Z))] : CategoryTheory.MonoidalCoherence.iso = CategoryTheory.MonoidalCoherence.iso ≪≫ (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).symm - Mathlib.Tactic.Monoidal.structuralIsoOfExpr_comp 📋 Mathlib.Tactic.CategoryTheory.Monoidal.Datatypes
{C : Type u} [CategoryTheory.Category.{v, u} C] {f g h : C} (η : f ⟶ g) (η' : f ≅ g) (ih_η : η'.hom = η) (θ : g ⟶ h) (θ' : g ≅ h) (ih_θ : θ'.hom = θ) : (η' ≪≫ θ').hom = CategoryTheory.CategoryStruct.comp η θ - Mathlib.Tactic.Monoidal.naturality_id 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f pf : C} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.Iso.refl f) ≪≫ η_f = η_f - Mathlib.Tactic.Monoidal.naturality_inv 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f g pf : C} {η : f ≅ g} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj p g ≅ pf) (ih : CategoryTheory.MonoidalCategory.whiskerLeftIso p η ≪≫ η_g = η_f) : CategoryTheory.MonoidalCategory.whiskerLeftIso p η.symm ≪≫ η_f = η_g - Mathlib.Tactic.Monoidal.naturality_leftUnitor 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f pf : C} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategoryStruct.leftUnitor f) ≪≫ η_f = Mathlib.Tactic.Monoidal.normalizeIsoComp (CategoryTheory.MonoidalCategoryStruct.rightUnitor p) η_f - Mathlib.Tactic.Monoidal.naturality_rightUnitor 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f pf : C} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategoryStruct.rightUnitor f) ≪≫ η_f = Mathlib.Tactic.Monoidal.normalizeIsoComp η_f (CategoryTheory.MonoidalCategoryStruct.rightUnitor pf) - Mathlib.Tactic.Monoidal.naturality_comp 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f g h pf : C} {η : f ≅ g} {θ : g ≅ h} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj p g ≅ pf) (η_h : CategoryTheory.MonoidalCategoryStruct.tensorObj p h ≅ pf) (ih_η : CategoryTheory.MonoidalCategory.whiskerLeftIso p η ≪≫ η_g = η_f) (ih_θ : CategoryTheory.MonoidalCategory.whiskerLeftIso p θ ≪≫ η_h = η_g) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (η ≪≫ θ) ≪≫ η_h = η_f - Mathlib.Tactic.Monoidal.of_normalize_eq 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g f' : C} {η θ : f ≅ g} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) f ≅ f') (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) g ≅ f') (h_η : CategoryTheory.MonoidalCategory.whiskerLeftIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) η ≪≫ η_g = η_f) (h_θ : CategoryTheory.MonoidalCategory.whiskerLeftIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) θ ≪≫ η_g = η_f) : η = θ - Mathlib.Tactic.Monoidal.naturality_whiskerLeft 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f g h pf pfg : C} {η : g ≅ h} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) (η_fg : CategoryTheory.MonoidalCategoryStruct.tensorObj pf g ≅ pfg) (η_fh : CategoryTheory.MonoidalCategoryStruct.tensorObj pf h ≅ pfg) (ih_η : CategoryTheory.MonoidalCategory.whiskerLeftIso pf η ≪≫ η_fh = η_fg) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategory.whiskerLeftIso f η) ≪≫ Mathlib.Tactic.Monoidal.normalizeIsoComp η_f η_fh = Mathlib.Tactic.Monoidal.normalizeIsoComp η_f η_fg - Mathlib.Tactic.Monoidal.naturality_whiskerRight 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f g h pf pfh : C} {η : f ≅ g} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj p g ≅ pf) (η_fh : CategoryTheory.MonoidalCategoryStruct.tensorObj pf h ≅ pfh) (ih_η : CategoryTheory.MonoidalCategory.whiskerLeftIso p η ≪≫ η_g = η_f) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategory.whiskerRightIso η h) ≪≫ Mathlib.Tactic.Monoidal.normalizeIsoComp η_g η_fh = Mathlib.Tactic.Monoidal.normalizeIsoComp η_f η_fh - Mathlib.Tactic.Monoidal.naturality_associator 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f g h pf pfg pfgh : C} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj p f ≅ pf) (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj pf g ≅ pfg) (η_h : CategoryTheory.MonoidalCategoryStruct.tensorObj pfg h ≅ pfgh) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategoryStruct.associator f g h) ≪≫ Mathlib.Tactic.Monoidal.normalizeIsoComp η_f (Mathlib.Tactic.Monoidal.normalizeIsoComp η_g η_h) = Mathlib.Tactic.Monoidal.normalizeIsoComp (Mathlib.Tactic.Monoidal.normalizeIsoComp η_f η_g) η_h - Mathlib.Tactic.Monoidal.mk_eq_of_naturality 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {f g f' : C} {η θ : f ⟶ g} {η' θ' : f ≅ g} (η_f : CategoryTheory.MonoidalCategoryStruct.tensorObj (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) f ≅ f') (η_g : CategoryTheory.MonoidalCategoryStruct.tensorObj (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) g ≅ f') (η_hom : η'.hom = η) (Θ_hom : θ'.hom = θ) (Hη : CategoryTheory.MonoidalCategory.whiskerLeftIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) η' ≪≫ η_g = η_f) (Hθ : CategoryTheory.MonoidalCategory.whiskerLeftIso (CategoryTheory.MonoidalCategoryStruct.tensorUnit C) θ' ≪≫ η_g = η_f) : η = θ - Mathlib.Tactic.Monoidal.naturality_tensorHom 📋 Mathlib.Tactic.CategoryTheory.Monoidal.PureCoherence
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] {p f₁ g₁ f₂ g₂ pf₁ pf₁f₂ : C} {η : f₁ ≅ g₁} {θ : f₂ ≅ g₂} (η_f₁ : CategoryTheory.MonoidalCategoryStruct.tensorObj p f₁ ≅ pf₁) (η_g₁ : CategoryTheory.MonoidalCategoryStruct.tensorObj p g₁ ≅ pf₁) (η_f₂ : CategoryTheory.MonoidalCategoryStruct.tensorObj pf₁ f₂ ≅ pf₁f₂) (η_g₂ : CategoryTheory.MonoidalCategoryStruct.tensorObj pf₁ g₂ ≅ pf₁f₂) (ih_η : CategoryTheory.MonoidalCategory.whiskerLeftIso p η ≪≫ η_g₁ = η_f₁) (ih_θ : CategoryTheory.MonoidalCategory.whiskerLeftIso pf₁ θ ≪≫ η_g₂ = η_f₂) : CategoryTheory.MonoidalCategory.whiskerLeftIso p (CategoryTheory.MonoidalCategory.tensorIso η θ) ≪≫ Mathlib.Tactic.Monoidal.normalizeIsoComp η_g₁ η_g₂ = Mathlib.Tactic.Monoidal.normalizeIsoComp η_f₁ η_f₂ - Mathlib.Tactic.Monoidal.evalComp_nil_nil 📋 Mathlib.Tactic.CategoryTheory.Monoidal.Normalize
{C : Type u} [CategoryTheory.Category.{v, u} C] {f g h : C} (α : f ≅ g) (β : g ≅ h) : (α ≪≫ β).hom = (α ≪≫ β).hom - Mathlib.Tactic.Monoidal.evalComp_nil_cons 📋 Mathlib.Tactic.CategoryTheory.Monoidal.Normalize
{C : Type u} [CategoryTheory.Category.{v, u} C] {f g h i j : C} (α : f ≅ g) (β : g ≅ h) (η : h ⟶ i) (ηs : i ⟶ j) : CategoryTheory.CategoryStruct.comp α.hom (CategoryTheory.CategoryStruct.comp β.hom (CategoryTheory.CategoryStruct.comp η ηs)) = CategoryTheory.CategoryStruct.comp (α ≪≫ β).hom (CategoryTheory.CategoryStruct.comp η ηs) - CategoryTheory.BraidedCategory.hexagon_forward_iso 📋 Mathlib.CategoryTheory.Monoidal.Braided.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X Y Z : C) : CategoryTheory.MonoidalCategoryStruct.associator X Y Z ≪≫ β_ X (CategoryTheory.MonoidalCategoryStruct.tensorObj Y Z) ≪≫ CategoryTheory.MonoidalCategoryStruct.associator Y Z X = CategoryTheory.MonoidalCategory.whiskerRightIso (β_ X Y) Z ≪≫ CategoryTheory.MonoidalCategoryStruct.associator Y X Z ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso Y (β_ X Z) - CategoryTheory.BraidedCategory.hexagon_reverse_iso 📋 Mathlib.CategoryTheory.Monoidal.Braided.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X Y Z : C) : (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).symm ≪≫ β_ (CategoryTheory.MonoidalCategoryStruct.tensorObj X Y) Z ≪≫ (CategoryTheory.MonoidalCategoryStruct.associator Z X Y).symm = CategoryTheory.MonoidalCategory.whiskerLeftIso X (β_ Y Z) ≪≫ (CategoryTheory.MonoidalCategoryStruct.associator X Z Y).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (β_ X Z) Y - CategoryTheory.BraidedCategory.yang_baxter_iso 📋 Mathlib.CategoryTheory.Monoidal.Braided.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] (X Y Z : C) : (CategoryTheory.MonoidalCategoryStruct.associator X Y Z).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (β_ X Y) Z ≪≫ CategoryTheory.MonoidalCategoryStruct.associator Y X Z ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso Y (β_ X Z) ≪≫ (CategoryTheory.MonoidalCategoryStruct.associator Y Z X).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (β_ Y Z) X ≪≫ CategoryTheory.MonoidalCategoryStruct.associator Z Y X = CategoryTheory.MonoidalCategory.whiskerLeftIso X (β_ Y Z) ≪≫ (CategoryTheory.MonoidalCategoryStruct.associator X Z Y).symm ≪≫ CategoryTheory.MonoidalCategory.whiskerRightIso (β_ X Z) Y ≪≫ CategoryTheory.MonoidalCategoryStruct.associator Z X Y ≪≫ CategoryTheory.MonoidalCategory.whiskerLeftIso Z (β_ X Y) - ModuleCat.restrictScalarsEquivalenceOfRingEquiv_unitIso 📋 Mathlib.Algebra.Category.ModuleCat.ChangeOfRings
{R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (e : R ≃+* S) : (ModuleCat.restrictScalarsEquivalenceOfRingEquiv e).unitIso = (ModuleCat.restrictScalarsId S).symm ≪≫ ModuleCat.restrictScalarsComp' (↑e.symm) e.toRingHom (RingHom.id S) ⋯ - ModuleCat.restrictScalarsEquivalenceOfRingEquiv_counitIso 📋 Mathlib.Algebra.Category.ModuleCat.ChangeOfRings
{R : Type u_1} {S : Type u_2} [Ring R] [Ring S] (e : R ≃+* S) : (ModuleCat.restrictScalarsEquivalenceOfRingEquiv e).counitIso = (ModuleCat.restrictScalarsComp' e.toRingHom e.symm.toRingHom (RingHom.id R) ⋯).symm ≪≫ ModuleCat.restrictScalarsId R - CoalgEquiv.toCoalgIso_trans 📋 Mathlib.Algebra.Category.CoalgCat.Basic
{R : Type u} [CommRing R] {X Y Z : Type v} [AddCommGroup X] [Module R X] [AddCommGroup Y] [Module R Y] [AddCommGroup Z] [Module R Z] [Coalgebra R X] [Coalgebra R Y] [Coalgebra R Z] (e : X ≃ₗc[R] Y) (f : Y ≃ₗc[R] Z) : (e.trans f).toCoalgIso = e.toCoalgIso ≪≫ f.toCoalgIso - CategoryTheory.Iso.toCoalgEquiv_trans 📋 Mathlib.Algebra.Category.CoalgCat.Basic
{R : Type u} [CommRing R] {X Y Z : CoalgCat R} (e : X ≅ Y) (f : Y ≅ Z) : (e ≪≫ f).toCoalgEquiv = e.toCoalgEquiv.trans f.toCoalgEquiv - BialgEquiv.toBialgIso_trans 📋 Mathlib.Algebra.Category.BialgCat.Basic
{R : Type u} [CommRing R] {X Y Z : Type v} [Ring X] [Ring Y] [Ring Z] [Bialgebra R X] [Bialgebra R Y] [Bialgebra R Z] (e : X ≃ₐc[R] Y) (f : Y ≃ₐc[R] Z) : (e.trans f).toBialgIso = e.toBialgIso ≪≫ f.toBialgIso - CategoryTheory.Iso.toBialgEquiv_trans 📋 Mathlib.Algebra.Category.BialgCat.Basic
{R : Type u} [CommRing R] {X Y Z : BialgCat R} (e : X ≅ Y) (f : Y ≅ Z) : (e ≪≫ f).toBialgEquiv = e.toBialgEquiv.trans f.toBialgEquiv - CategoryTheory.Equivalence.mapAddMon_unitIso 📋 Mathlib.CategoryTheory.Monoidal.Mon
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] [e.IsMonoidal] : e.mapAddMon.unitIso = CategoryTheory.Functor.mapAddMonIdIso.symm ≪≫ CategoryTheory.Functor.mapAddMonNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapAddMonCompIso - CategoryTheory.Equivalence.mapMon_unitIso 📋 Mathlib.CategoryTheory.Monoidal.Mon
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] [e.IsMonoidal] : e.mapMon.unitIso = CategoryTheory.Functor.mapMonIdIso.symm ≪≫ CategoryTheory.Functor.mapMonNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapMonCompIso - CategoryTheory.Equivalence.mapAddMon_counitIso 📋 Mathlib.CategoryTheory.Monoidal.Mon
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] [e.IsMonoidal] : e.mapAddMon.counitIso = CategoryTheory.Functor.mapAddMonCompIso.symm ≪≫ CategoryTheory.Functor.mapAddMonNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapAddMonIdIso - CategoryTheory.Equivalence.mapMon_counitIso 📋 Mathlib.CategoryTheory.Monoidal.Mon
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] [e.IsMonoidal] : e.mapMon.counitIso = CategoryTheory.Functor.mapMonCompIso.symm ≪≫ CategoryTheory.Functor.mapMonNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapMonIdIso - CategoryTheory.Monad.algebraEquivOfIsoMonads_unitIso 📋 Mathlib.CategoryTheory.Monad.Algebra
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {T₁ T₂ : CategoryTheory.Monad C} (h : T₁ ≅ T₂) : (CategoryTheory.Monad.algebraEquivOfIsoMonads h).unitIso = CategoryTheory.Monad.algebraFunctorOfMonadHomId.symm ≪≫ CategoryTheory.Monad.algebraFunctorOfMonadHomEq ⋯ ≪≫ CategoryTheory.Monad.algebraFunctorOfMonadHomComp h.hom h.inv - CategoryTheory.Monad.algebraEquivOfIsoMonads_counitIso 📋 Mathlib.CategoryTheory.Monad.Algebra
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {T₁ T₂ : CategoryTheory.Monad C} (h : T₁ ≅ T₂) : (CategoryTheory.Monad.algebraEquivOfIsoMonads h).counitIso = (CategoryTheory.Monad.algebraFunctorOfMonadHomComp h.inv h.hom).symm ≪≫ CategoryTheory.Monad.algebraFunctorOfMonadHomEq ⋯ ≪≫ CategoryTheory.Monad.algebraFunctorOfMonadHomId - AlgEquiv.toUnder_trans 📋 Mathlib.Algebra.Category.Ring.Under.Basic
{R : CommRingCat} {A B C : Type u} [CommRing A] [CommRing B] [CommRing C] [Algebra (↑R) A] [Algebra (↑R) B] [Algebra (↑R) C] (f : A ≃ₐ[↑R] B) (g : B ≃ₐ[↑R] C) : (f.trans g).toUnder = f.toUnder ≪≫ g.toUnder - CategoryTheory.Pseudofunctor.comp_mapId 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {D : Type u₃} [CategoryTheory.Bicategory D] (F : CategoryTheory.Pseudofunctor B C) (G : CategoryTheory.Pseudofunctor C D) (a : B) : (F.comp G).mapId a = G.map₂Iso (F.mapId a) ≪≫ G.mapId (F.obj a) - CategoryTheory.Pseudofunctor.comp_mapComp 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] {D : Type u₃} [CategoryTheory.Bicategory D] (F : CategoryTheory.Pseudofunctor B C) (G : CategoryTheory.Pseudofunctor C D) {a✝ b✝ c✝ : B} (f : a✝ ⟶ b✝) (g : b✝ ⟶ c✝) : (F.comp G).mapComp f g = G.map₂Iso (F.mapComp f g) ≪≫ G.mapComp (F.map f) (F.map g) - CategoryTheory.Pseudofunctor.mapComp_id_left 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.Pseudofunctor B C) {a b : B} (f : a ⟶ b) : F.mapComp (CategoryTheory.CategoryStruct.id a) f = F.map₂Iso (CategoryTheory.Bicategory.leftUnitor f) ≪≫ (CategoryTheory.Bicategory.leftUnitor (F.map f)).symm ≪≫ (CategoryTheory.Bicategory.whiskerRightIso (F.mapId a) (F.map f)).symm - CategoryTheory.Pseudofunctor.mapComp_id_right 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.Pseudofunctor B C) {a b : B} (f : a ⟶ b) : F.mapComp f (CategoryTheory.CategoryStruct.id b) = F.map₂Iso (CategoryTheory.Bicategory.rightUnitor f) ≪≫ (CategoryTheory.Bicategory.rightUnitor (F.map f)).symm ≪≫ (CategoryTheory.Bicategory.whiskerLeftIso (F.map f) (F.mapId b)).symm - CategoryTheory.Pseudofunctor.whiskerLeftIso_mapId 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.Pseudofunctor B C) {a b : B} (f : a ⟶ b) : CategoryTheory.Bicategory.whiskerLeftIso (F.map f) (F.mapId b) = (F.mapComp f (CategoryTheory.CategoryStruct.id b)).symm ≪≫ F.map₂Iso (CategoryTheory.Bicategory.rightUnitor f) ≪≫ (CategoryTheory.Bicategory.rightUnitor (F.map f)).symm - CategoryTheory.Pseudofunctor.whiskerRightIso_mapId 📋 Mathlib.CategoryTheory.Bicategory.Functor.Pseudofunctor
{B : Type u₁} [CategoryTheory.Bicategory B] {C : Type u₂} [CategoryTheory.Bicategory C] (F : CategoryTheory.Pseudofunctor B C) {a b : B} (f : a ⟶ b) : CategoryTheory.Bicategory.whiskerRightIso (F.mapId a) (F.map f) = (F.mapComp (CategoryTheory.CategoryStruct.id a) f).symm ≪≫ F.map₂Iso (CategoryTheory.Bicategory.leftUnitor f) ≪≫ (CategoryTheory.Bicategory.leftUnitor (F.map f)).symm - CategoryTheory.CartesianMonoidalCategory.preservesTerminalIso_comp 📋 Mathlib.CategoryTheory.Monoidal.Cartesian.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₁} [CategoryTheory.Category.{v₁, u₁} D] [CategoryTheory.CartesianMonoidalCategory D] (F : CategoryTheory.Functor C D) {E : Type u₂} [CategoryTheory.Category.{v₂, u₂} E] [CategoryTheory.CartesianMonoidalCategory E] (G : CategoryTheory.Functor D E) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty D) G] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Functor.empty C) (F.comp G)] : CategoryTheory.CartesianMonoidalCategory.preservesTerminalIso (F.comp G) = G.mapIso (CategoryTheory.CartesianMonoidalCategory.preservesTerminalIso F) ≪≫ CategoryTheory.CartesianMonoidalCategory.preservesTerminalIso G - CategoryTheory.CartesianMonoidalCategory.prodComparisonIso_comp 📋 Mathlib.CategoryTheory.Monoidal.Cartesian.Basic
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₁} [CategoryTheory.Category.{v₁, u₁} D] [CategoryTheory.CartesianMonoidalCategory D] (F : CategoryTheory.Functor C D) (A B : C) {E : Type u₂} [CategoryTheory.Category.{v₂, u₂} E] [CategoryTheory.CartesianMonoidalCategory E] (G : CategoryTheory.Functor D E) [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair A B) F] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair A B) (F.comp G)] [CategoryTheory.Limits.PreservesLimit (CategoryTheory.Limits.pair (F.obj A) (F.obj B)) G] : CategoryTheory.CartesianMonoidalCategory.prodComparisonIso (F.comp G) A B = G.mapIso (CategoryTheory.CartesianMonoidalCategory.prodComparisonIso F A B) ≪≫ CategoryTheory.CartesianMonoidalCategory.prodComparisonIso G (F.obj A) (F.obj B) - CategoryTheory.Equivalence.mapAddGrp_unitIso 📋 Mathlib.CategoryTheory.Monoidal.Grp
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] : e.mapAddGrp.unitIso = CategoryTheory.Functor.mapAddGrpIdIso.symm ≪≫ CategoryTheory.Functor.mapAddGrpNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapAddGrpCompIso - CategoryTheory.Equivalence.mapGrp_unitIso 📋 Mathlib.CategoryTheory.Monoidal.Grp
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] : e.mapGrp.unitIso = CategoryTheory.Functor.mapGrpIdIso.symm ≪≫ CategoryTheory.Functor.mapGrpNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapGrpCompIso - CategoryTheory.Equivalence.mapAddGrp_counitIso 📋 Mathlib.CategoryTheory.Monoidal.Grp
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] : e.mapAddGrp.counitIso = CategoryTheory.Functor.mapAddGrpCompIso.symm ≪≫ CategoryTheory.Functor.mapAddGrpNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapAddGrpIdIso - CategoryTheory.Equivalence.mapGrp_counitIso 📋 Mathlib.CategoryTheory.Monoidal.Grp
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] (e : C ≌ D) [e.functor.Monoidal] [e.inverse.Monoidal] : e.mapGrp.counitIso = CategoryTheory.Functor.mapGrpCompIso.symm ≪≫ CategoryTheory.Functor.mapGrpNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapGrpIdIso - CategoryTheory.ShortComplex.HomologyData.right_homologyIso_eq_left_homologyIso_trans_iso 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} (h : S.HomologyData) [S.HasHomology] : h.right.homologyIso = h.left.homologyIso ≪≫ h.iso - CategoryTheory.ShortComplex.HomologyData.left_homologyIso_eq_right_homologyIso_trans_iso_symm 📋 Mathlib.Algebra.Homology.ShortComplex.Homology
{C : Type u} [CategoryTheory.Category.{v, u} C] [CategoryTheory.Limits.HasZeroMorphisms C] {S : CategoryTheory.ShortComplex C} (h : S.HomologyData) [S.HasHomology] : h.left.homologyIso = h.right.homologyIso ≪≫ h.iso.symm - CategoryTheory.ShortComplex.LeftHomologyData.mapHomologyIso_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hl : S.LeftHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasHomology] [(S.map F).HasHomology] [F.PreservesLeftHomologyOf S] : S.mapHomologyIso F = (hl.map F).homologyIso ≪≫ F.mapIso hl.homologyIso.symm - CategoryTheory.ShortComplex.RightHomologyData.mapHomologyIso'_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hr : S.RightHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasHomology] [(S.map F).HasHomology] [F.PreservesRightHomologyOf S] : S.mapHomologyIso' F = (hr.map F).homologyIso ≪≫ F.mapIso hr.homologyIso.symm - CategoryTheory.ShortComplex.LeftHomologyData.mapCyclesIso_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hl : S.LeftHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasLeftHomology] [F.PreservesLeftHomologyOf S] : S.mapCyclesIso F = (hl.map F).cyclesIso ≪≫ F.mapIso hl.cyclesIso.symm - CategoryTheory.ShortComplex.LeftHomologyData.mapLeftHomologyIso_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hl : S.LeftHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasLeftHomology] [F.PreservesLeftHomologyOf S] : S.mapLeftHomologyIso F = (hl.map F).leftHomologyIso ≪≫ F.mapIso hl.leftHomologyIso.symm - CategoryTheory.ShortComplex.RightHomologyData.mapOpcyclesIso_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hr : S.RightHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasRightHomology] [F.PreservesRightHomologyOf S] : S.mapOpcyclesIso F = (hr.map F).opcyclesIso ≪≫ F.mapIso hr.opcyclesIso.symm - CategoryTheory.ShortComplex.RightHomologyData.mapRightHomologyIso_eq 📋 Mathlib.Algebra.Homology.ShortComplex.PreservesHomology
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (hr : S.RightHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [S.HasRightHomology] [F.PreservesRightHomologyOf S] : S.mapRightHomologyIso F = (hr.map F).rightHomologyIso ≪≫ F.mapIso hr.rightHomologyIso.symm - CategoryTheory.MonoOver.mapIso_counitIso 📋 Mathlib.CategoryTheory.Subobject.MonoOver
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {A B : C} (e : A ≅ B) : (CategoryTheory.MonoOver.mapIso e).counitIso = (CategoryTheory.MonoOver.mapComp e.inv e.hom).symm ≪≫ CategoryTheory.eqToIso ⋯ ≪≫ CategoryTheory.MonoOver.mapId B - CategoryTheory.MonoOver.mapIso_unitIso 📋 Mathlib.CategoryTheory.Subobject.MonoOver
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {A B : C} (e : A ≅ B) : (CategoryTheory.MonoOver.mapIso e).unitIso = ((CategoryTheory.MonoOver.mapComp e.hom e.inv).symm ≪≫ CategoryTheory.eqToIso ⋯ ≪≫ CategoryTheory.MonoOver.mapId A).symm - CategoryTheory.Equivalence.mapCommMon_unitIso 📋 Mathlib.CategoryTheory.Monoidal.CommMon_
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] [CategoryTheory.BraidedCategory D] (e : C ≌ D) [e.functor.Braided] [e.inverse.Braided] [e.IsMonoidal] : e.mapCommMon.unitIso = CategoryTheory.Functor.mapCommMonIdIso.symm ≪≫ CategoryTheory.Functor.mapCommMonNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapCommMonCompIso - CategoryTheory.Equivalence.mapCommMon_counitIso 📋 Mathlib.CategoryTheory.Monoidal.CommMon_
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.MonoidalCategory C] [CategoryTheory.BraidedCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.MonoidalCategory D] [CategoryTheory.BraidedCategory D] (e : C ≌ D) [e.functor.Braided] [e.inverse.Braided] [e.IsMonoidal] : e.mapCommMon.counitIso = CategoryTheory.Functor.mapCommMonCompIso.symm ≪≫ CategoryTheory.Functor.mapCommMonNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapCommMonIdIso - CategoryTheory.Equivalence.mapCommGrp_unitIso 📋 Mathlib.CategoryTheory.Monoidal.CommGrp_
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] [CategoryTheory.BraidedCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] [CategoryTheory.BraidedCategory D] (e : C ≌ D) [e.functor.Braided] [e.inverse.Braided] : e.mapCommGrp.unitIso = CategoryTheory.Functor.mapCommGrpIdIso.symm ≪≫ CategoryTheory.Functor.mapCommGrpNatIso e.unitIso ≪≫ CategoryTheory.Functor.mapCommGrpCompIso - CategoryTheory.Equivalence.mapCommGrp_counitIso 📋 Mathlib.CategoryTheory.Monoidal.CommGrp_
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] [CategoryTheory.CartesianMonoidalCategory C] [CategoryTheory.BraidedCategory C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] [CategoryTheory.CartesianMonoidalCategory D] [CategoryTheory.BraidedCategory D] (e : C ≌ D) [e.functor.Braided] [e.inverse.Braided] : e.mapCommGrp.counitIso = CategoryTheory.Functor.mapCommGrpCompIso.symm ≪≫ CategoryTheory.Functor.mapCommGrpNatIso e.counitIso ≪≫ CategoryTheory.Functor.mapCommGrpIdIso - BialgEquiv.toHopfAlgIso_trans 📋 Mathlib.Algebra.Category.HopfAlgCat.Basic
{R : Type u} [CommRing R] {X Y Z : Type v} [Ring X] [Ring Y] [Ring Z] [HopfAlgebra R X] [HopfAlgebra R Y] [HopfAlgebra R Z] (e : X ≃ₐc[R] Y) (f : Y ≃ₐc[R] Z) : (e.trans f).toHopfAlgIso = e.toHopfAlgIso ≪≫ f.toHopfAlgIso - CategoryTheory.Iso.toHopfAlgEquiv_trans 📋 Mathlib.Algebra.Category.HopfAlgCat.Basic
{R : Type u} [CommRing R] {X Y Z : HopfAlgCat R} (e : X ≅ Y) (f : Y ≅ Z) : (e ≪≫ f).toHopfAlgEquiv = e.toHopfAlgEquiv.trans f.toHopfAlgEquiv - CategoryTheory.shiftFunctorComm_eq 📋 Mathlib.CategoryTheory.Shift.Basic
(C : Type u) {A : Type u_1} [CategoryTheory.Category.{v, u} C] [AddCommMonoid A] [CategoryTheory.HasShift C A] (i j k : A) (h : i + j = k) : CategoryTheory.shiftFunctorComm C i j = (CategoryTheory.shiftFunctorAdd' C i j k h).symm ≪≫ CategoryTheory.shiftFunctorAdd' C j i k ⋯ - CategoryTheory.shiftFunctorAdd'_add_zero 📋 Mathlib.CategoryTheory.Shift.Basic
(C : Type u) {A : Type u_1} [CategoryTheory.Category.{v, u} C] [AddMonoid A] [CategoryTheory.HasShift C A] (a : A) : CategoryTheory.shiftFunctorAdd' C a 0 a ⋯ = (CategoryTheory.shiftFunctor C a).rightUnitor.symm ≪≫ (CategoryTheory.shiftFunctor C a).isoWhiskerLeft (CategoryTheory.shiftFunctorZero C A).symm - CategoryTheory.shiftFunctorAdd'_zero_add 📋 Mathlib.CategoryTheory.Shift.Basic
(C : Type u) {A : Type u_1} [CategoryTheory.Category.{v, u} C] [AddMonoid A] [CategoryTheory.HasShift C A] (a : A) : CategoryTheory.shiftFunctorAdd' C 0 a a ⋯ = (CategoryTheory.shiftFunctor C a).leftUnitor.symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorZero C A).symm (CategoryTheory.shiftFunctor C a) - CategoryTheory.shiftFunctorAdd'_assoc 📋 Mathlib.CategoryTheory.Shift.Basic
(C : Type u) {A : Type u_1} [CategoryTheory.Category.{v, u} C] [AddMonoid A] [CategoryTheory.HasShift C A] (a₁ a₂ a₃ a₁₂ a₂₃ a₁₂₃ : A) (h₁₂ : a₁ + a₂ = a₁₂) (h₂₃ : a₂ + a₃ = a₂₃) (h₁₂₃ : a₁ + a₂ + a₃ = a₁₂₃) : CategoryTheory.shiftFunctorAdd' C a₁₂ a₃ a₁₂₃ ⋯ ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd' C a₁ a₂ a₁₂ h₁₂) (CategoryTheory.shiftFunctor C a₃) ≪≫ (CategoryTheory.shiftFunctor C a₁).associator (CategoryTheory.shiftFunctor C a₂) (CategoryTheory.shiftFunctor C a₃) = CategoryTheory.shiftFunctorAdd' C a₁ a₂₃ a₁₂₃ ⋯ ≪≫ (CategoryTheory.shiftFunctor C a₁).isoWhiskerLeft (CategoryTheory.shiftFunctorAdd' C a₂ a₃ a₂₃ h₂₃) - CategoryTheory.shiftFunctorAdd_assoc 📋 Mathlib.CategoryTheory.Shift.Basic
(C : Type u) {A : Type u_1} [CategoryTheory.Category.{v, u} C] [AddMonoid A] [CategoryTheory.HasShift C A] (a₁ a₂ a₃ : A) : CategoryTheory.shiftFunctorAdd C (a₁ + a₂) a₃ ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd C a₁ a₂) (CategoryTheory.shiftFunctor C a₃) ≪≫ (CategoryTheory.shiftFunctor C a₁).associator (CategoryTheory.shiftFunctor C a₂) (CategoryTheory.shiftFunctor C a₃) = CategoryTheory.shiftFunctorAdd' C a₁ (a₂ + a₃) (a₁ + a₂ + a₃) ⋯ ≪≫ (CategoryTheory.shiftFunctor C a₁).isoWhiskerLeft (CategoryTheory.shiftFunctorAdd C a₂ a₃) - CategoryTheory.GradedObject.comapEq_trans 📋 Mathlib.CategoryTheory.GradedObject
(C : Type u) [CategoryTheory.Category.{v, u} C] {β γ : Type w} {f g h : β → γ} (k : f = g) (l : g = h) : CategoryTheory.GradedObject.comapEq C ⋯ = CategoryTheory.GradedObject.comapEq C k ≪≫ CategoryTheory.GradedObject.comapEq C l - CategoryTheory.GradedObject.comapEquiv_unitIso 📋 Mathlib.CategoryTheory.GradedObject
(C : Type u) [CategoryTheory.Category.{v, u} C] {β γ : Type w} (e : β ≃ γ) : (CategoryTheory.GradedObject.comapEquiv C e).unitIso = CategoryTheory.GradedObject.comapEq C ⋯ ≪≫ (CategoryTheory.Pi.comapComp (fun x => C) ⇑e ⇑e.symm).symm - CategoryTheory.GradedObject.comapEquiv_counitIso 📋 Mathlib.CategoryTheory.GradedObject
(C : Type u) [CategoryTheory.Category.{v, u} C] {β γ : Type w} (e : β ≃ γ) : (CategoryTheory.GradedObject.comapEquiv C e).counitIso = CategoryTheory.Pi.comapComp (fun x => C) ⇑e.symm ⇑e ≪≫ CategoryTheory.GradedObject.comapEq C ⋯ - CategoryTheory.Equivalence.mapHomologicalComplex_counitIso 📋 Mathlib.Algebra.Homology.Additive
{ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{v_2, u_3} W₁] [CategoryTheory.Category.{v_3, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (e : W₁ ≌ W₂) [e.functor.PreservesZeroMorphisms] (c : ComplexShape ι) : (e.mapHomologicalComplex c).counitIso = CategoryTheory.NatIso.mapHomologicalComplex e.counitIso c ≪≫ CategoryTheory.Functor.mapHomologicalComplexIdIso W₂ c - CategoryTheory.Equivalence.mapHomologicalComplex_unitIso 📋 Mathlib.Algebra.Homology.Additive
{ι : Type u_1} {W₁ : Type u_3} {W₂ : Type u_4} [CategoryTheory.Category.{v_2, u_3} W₁] [CategoryTheory.Category.{v_3, u_4} W₂] [CategoryTheory.Limits.HasZeroMorphisms W₁] [CategoryTheory.Limits.HasZeroMorphisms W₂] (e : W₁ ≌ W₂) [e.functor.PreservesZeroMorphisms] (c : ComplexShape ι) : (e.mapHomologicalComplex c).unitIso = (CategoryTheory.Functor.mapHomologicalComplexIdIso W₁ c).symm ≪≫ CategoryTheory.NatIso.mapHomologicalComplex e.unitIso c - CategoryTheory.Functor.ShiftSequence.leftComp_isoZero 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {D : Type u_2} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Category.{v_3, u_3} A] {F : CategoryTheory.Functor C A} {π : CategoryTheory.Functor C D} {H : CategoryTheory.Functor D A} (e : π.comp H ≅ F) (M : Type u_4) [AddMonoid M] [CategoryTheory.HasShift C M] [CategoryTheory.HasShift D M] [π.CommShift M] [H.ShiftSequence M] : CategoryTheory.Functor.ShiftSequence.isoZero = π.isoWhiskerLeft (H.isoShiftZero M) ≪≫ e - CategoryTheory.Functor.shiftIso_zero 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_3, u_3} A] (F : CategoryTheory.Functor C A) {M : Type u_4} [AddMonoid M] [CategoryTheory.HasShift C M] [F.ShiftSequence M] (a : M) : F.shiftIso 0 a a ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorZero C M) (F.shift a) ≪≫ (F.shift a).leftUnitor - CategoryTheory.Functor.ShiftSequence.shiftIso_zero 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} {inst✝ : CategoryTheory.Category.{v_1, u_1} C} {inst✝¹ : CategoryTheory.Category.{v_3, u_3} A} {F : CategoryTheory.Functor C A} {M : Type u_4} {inst✝² : AddMonoid M} {inst✝³ : CategoryTheory.HasShift C M} [self : F.ShiftSequence M] (a : M) : CategoryTheory.Functor.ShiftSequence.shiftIso 0 a a ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorZero C M) (CategoryTheory.Functor.ShiftSequence.sequence F a) ≪≫ (CategoryTheory.Functor.ShiftSequence.sequence F a).leftUnitor - CategoryTheory.Functor.shiftIso_add' 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_3, u_3} A] (F : CategoryTheory.Functor C A) {M : Type u_4} [AddMonoid M] [CategoryTheory.HasShift C M] [F.ShiftSequence M] (n m mn : M) (hnm : m + n = mn) (a a' a'' : M) (ha' : n + a = a') (ha'' : m + a' = a'') : F.shiftIso mn a a'' ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd' C m n mn hnm) (F.shift a) ≪≫ (CategoryTheory.shiftFunctor C m).associator (CategoryTheory.shiftFunctor C n) (F.shift a) ≪≫ (CategoryTheory.shiftFunctor C m).isoWhiskerLeft (F.shiftIso n a a' ha') ≪≫ F.shiftIso m a' a'' ha'' - CategoryTheory.Functor.shiftIso_add 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_3, u_3} A] (F : CategoryTheory.Functor C A) {M : Type u_4} [AddMonoid M] [CategoryTheory.HasShift C M] [F.ShiftSequence M] (n m a a' a'' : M) (ha' : n + a = a') (ha'' : m + a' = a'') : F.shiftIso (m + n) a a'' ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd C m n) (F.shift a) ≪≫ (CategoryTheory.shiftFunctor C m).associator (CategoryTheory.shiftFunctor C n) (F.shift a) ≪≫ (CategoryTheory.shiftFunctor C m).isoWhiskerLeft (F.shiftIso n a a' ha') ≪≫ F.shiftIso m a' a'' ha'' - CategoryTheory.Functor.ShiftSequence.shiftIso_add 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} {inst✝ : CategoryTheory.Category.{v_1, u_1} C} {inst✝¹ : CategoryTheory.Category.{v_3, u_3} A} {F : CategoryTheory.Functor C A} {M : Type u_4} {inst✝² : AddMonoid M} {inst✝³ : CategoryTheory.HasShift C M} [self : F.ShiftSequence M] (n m a a' a'' : M) (ha' : n + a = a') (ha'' : m + a' = a'') : CategoryTheory.Functor.ShiftSequence.shiftIso (m + n) a a'' ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd C m n) (CategoryTheory.Functor.ShiftSequence.sequence F a) ≪≫ (CategoryTheory.shiftFunctor C m).associator (CategoryTheory.shiftFunctor C n) (CategoryTheory.Functor.ShiftSequence.sequence F a) ≪≫ (CategoryTheory.shiftFunctor C m).isoWhiskerLeft (CategoryTheory.Functor.ShiftSequence.shiftIso n a a' ha') ≪≫ CategoryTheory.Functor.ShiftSequence.shiftIso m a' a'' ha'' - CategoryTheory.Functor.ShiftSequence.mk 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_3, u_3} A] {F : CategoryTheory.Functor C A} {M : Type u_4} [AddMonoid M] [CategoryTheory.HasShift C M] (sequence : M → CategoryTheory.Functor C A) (isoZero : sequence 0 ≅ F) (shiftIso : (n a a' : M) → n + a = a' → ((CategoryTheory.shiftFunctor C n).comp (sequence a) ≅ sequence a')) (shiftIso_zero : ∀ (a : M), shiftIso 0 a a ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorZero C M) (sequence a) ≪≫ (sequence a).leftUnitor) (shiftIso_add : ∀ (n m a a' a'' : M) (ha' : n + a = a') (ha'' : m + a' = a''), shiftIso (m + n) a a'' ⋯ = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.shiftFunctorAdd C m n) (sequence a) ≪≫ (CategoryTheory.shiftFunctor C m).associator (CategoryTheory.shiftFunctor C n) (sequence a) ≪≫ (CategoryTheory.shiftFunctor C m).isoWhiskerLeft (shiftIso n a a' ha') ≪≫ shiftIso m a' a'' ha'') : F.ShiftSequence M - CategoryTheory.Functor.ShiftSequence.leftComp_shiftIso 📋 Mathlib.CategoryTheory.Shift.ShiftSequence
{C : Type u_1} {D : Type u_2} {A : Type u_3} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] [CategoryTheory.Category.{v_3, u_3} A] {F : CategoryTheory.Functor C A} {π : CategoryTheory.Functor C D} {H : CategoryTheory.Functor D A} (e : π.comp H ≅ F) (M : Type u_4) [AddMonoid M] [CategoryTheory.HasShift C M] [CategoryTheory.HasShift D M] [π.CommShift M] [H.ShiftSequence M] (n a a' : M) (ha' : n + a = a') : CategoryTheory.Functor.ShiftSequence.shiftIso n a a' ha' = ((CategoryTheory.shiftFunctor C n).associator π (H.shift a)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.Functor.commShiftIso π n) (H.shift a) ≪≫ π.associator (CategoryTheory.shiftFunctor D n) (H.shift a) ≪≫ π.isoWhiskerLeft (H.shiftIso n a a' ha') - CategoryTheory.Localization.Lifting.ofIsos_iso 📋 Mathlib.CategoryTheory.Localization.Predicate
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] (L : CategoryTheory.Functor C D) (W : CategoryTheory.MorphismProperty C) {E : Type u_3} [CategoryTheory.Category.{v_3, u_3} E] {F₁ F₂ : CategoryTheory.Functor C E} {F₁' F₂' : CategoryTheory.Functor D E} (e : F₁ ≅ F₂) (e' : F₁' ≅ F₂') [CategoryTheory.Localization.Lifting L W F₁ F₁'] : CategoryTheory.Localization.Lifting.iso L W F₂ F₂' = L.isoWhiskerLeft e'.symm ≪≫ CategoryTheory.Localization.Lifting.iso L W F₁ F₁' ≪≫ e - CategoryTheory.Localization.equivalence_counitIso_app 📋 Mathlib.CategoryTheory.Localization.Equivalence
{C₁ : Type u_1} {C₂ : Type u_2} {D₁ : Type u_4} {D₂ : Type u_5} [CategoryTheory.Category.{v_1, u_1} C₁] [CategoryTheory.Category.{v_2, u_2} C₂] [CategoryTheory.Category.{v_4, u_4} D₁] [CategoryTheory.Category.{v_5, u_5} D₂] (L₁ : CategoryTheory.Functor C₁ D₁) (W₁ : CategoryTheory.MorphismProperty C₁) [L₁.IsLocalization W₁] (L₂ : CategoryTheory.Functor C₂ D₂) (W₂ : CategoryTheory.MorphismProperty C₂) [L₂.IsLocalization W₂] (G : CategoryTheory.Functor C₁ D₂) (G' : CategoryTheory.Functor D₁ D₂) [CategoryTheory.Localization.Lifting L₁ W₁ G G'] (F : CategoryTheory.Functor C₂ D₁) (F' : CategoryTheory.Functor D₂ D₁) [CategoryTheory.Localization.Lifting L₂ W₂ F F'] (α : G.comp F' ≅ L₁) (β : F.comp G' ≅ L₂) (X : C₂) : (CategoryTheory.Localization.equivalence L₁ W₁ L₂ W₂ G G' F F' α β).counitIso.app (L₂.obj X) = (CategoryTheory.Localization.Lifting.iso L₂ W₂ (F.comp G') (F'.comp G')).app X ≪≫ β.app X - CategoryTheory.SingleFunctors.shiftIso_add' 📋 Mathlib.CategoryTheory.Shift.SingleFunctors
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] {A : Type u_5} [AddMonoid A] [CategoryTheory.HasShift D A] (F : CategoryTheory.SingleFunctors C D A) (n m mn : A) (hnm : m + n = mn) (a a' a'' : A) (ha' : n + a = a') (ha'' : m + a' = a'') : F.shiftIso mn a a'' ⋯ = (F.functor a'').isoWhiskerLeft (CategoryTheory.shiftFunctorAdd' D m n mn hnm) ≪≫ ((F.functor a'').associator (CategoryTheory.shiftFunctor D m) (CategoryTheory.shiftFunctor D n)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (F.shiftIso m a' a'' ha'') (CategoryTheory.shiftFunctor D n) ≪≫ F.shiftIso n a a' ha' - CategoryTheory.SingleFunctors.mk 📋 Mathlib.CategoryTheory.Shift.SingleFunctors
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] {A : Type u_5} [AddMonoid A] [CategoryTheory.HasShift D A] (functor : A → CategoryTheory.Functor C D) (shiftIso : (n a a' : A) → n + a = a' → ((functor a').comp (CategoryTheory.shiftFunctor D n) ≅ functor a)) (shiftIso_zero : ∀ (a : A), shiftIso 0 a a ⋯ = (functor a).isoWhiskerLeft (CategoryTheory.shiftFunctorZero D A)) (shiftIso_add : ∀ (n m a a' a'' : A) (ha' : n + a = a') (ha'' : m + a' = a''), shiftIso (m + n) a a'' ⋯ = (functor a'').isoWhiskerLeft (CategoryTheory.shiftFunctorAdd D m n) ≪≫ ((functor a'').associator (CategoryTheory.shiftFunctor D m) (CategoryTheory.shiftFunctor D n)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (shiftIso m a' a'' ha'') (CategoryTheory.shiftFunctor D n) ≪≫ shiftIso n a a' ha') : CategoryTheory.SingleFunctors C D A - CategoryTheory.SingleFunctors.shiftIso_add 📋 Mathlib.CategoryTheory.Shift.SingleFunctors
{C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Category.{v_2, u_2} D] {A : Type u_5} [AddMonoid A] [CategoryTheory.HasShift D A] (self : CategoryTheory.SingleFunctors C D A) (n m a a' a'' : A) (ha' : n + a = a') (ha'' : m + a' = a'') : self.shiftIso (m + n) a a'' ⋯ = (self.functor a'').isoWhiskerLeft (CategoryTheory.shiftFunctorAdd D m n) ≪≫ ((self.functor a'').associator (CategoryTheory.shiftFunctor D m) (CategoryTheory.shiftFunctor D n)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (self.shiftIso m a' a'' ha'') (CategoryTheory.shiftFunctor D n) ≪≫ self.shiftIso n a a' ha' - imageToKernel_unop 📋 Mathlib.Algebra.Homology.Opposite
{V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] [CategoryTheory.Abelian V] {X Y Z : Vᵒᵖ} (f : X ⟶ Y) (g : Y ⟶ Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) : imageToKernel g.unop f.unop ⋯ = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.imageSubobjectIso g.unop ≪≫ (CategoryTheory.imageUnopUnop g).symm).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.cokernel.desc f (CategoryTheory.Limits.factorThruImage g) ⋯).unop (CategoryTheory.Limits.kernelSubobjectIso f.unop ≪≫ CategoryTheory.kernelUnopUnop f).inv) - imageToKernel_op 📋 Mathlib.Algebra.Homology.Opposite
{V : Type u_1} [CategoryTheory.Category.{v_1, u_1} V] [CategoryTheory.Abelian V] {X Y Z : V} (f : X ⟶ Y) (g : Y ⟶ Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) : imageToKernel g.op f.op ⋯ = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.imageSubobjectIso g.op ≪≫ (CategoryTheory.imageOpOp g).symm).hom (CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.cokernel.desc f (CategoryTheory.Limits.factorThruImage g) ⋯).op (CategoryTheory.Limits.kernelSubobjectIso f.op ≪≫ CategoryTheory.kernelOpOp f).inv) - CategoryTheory.Functor.commShiftPullback_iso_eq 📋 Mathlib.CategoryTheory.Shift.Pullback
{C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] {A : Type u_2} {B : Type u_3} [AddMonoid A] [AddMonoid B] [CategoryTheory.HasShift C B] (φ : A →+ B) {D : Type u_4} [CategoryTheory.Category.{v_2, u_4} D] [CategoryTheory.HasShift D B] (F : CategoryTheory.Functor C D) [F.CommShift B] (a : A) (b : B) (h : b = φ a) : CategoryTheory.Functor.commShiftIso (CategoryTheory.PullbackShift.functor φ F) a = CategoryTheory.Functor.isoWhiskerRight (CategoryTheory.pullbackShiftIso C φ a b h) F ≪≫ CategoryTheory.Functor.commShiftIso F b ≪≫ F.isoWhiskerLeft (CategoryTheory.pullbackShiftIso D φ a b h).symm - PresheafOfModules.pushforward_id_comp 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pushforward
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) : PresheafOfModules.pushforwardComp φ (CategoryTheory.CategoryStruct.id R) = CategoryTheory.Functor.isoWhiskerRight (PresheafOfModules.pushforwardId R) (PresheafOfModules.pushforward φ) ≪≫ (PresheafOfModules.pushforward φ).leftUnitor - PresheafOfModules.pushforward_comp_id 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pushforward
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) : PresheafOfModules.pushforwardComp (CategoryTheory.CategoryStruct.id S) φ = (PresheafOfModules.pushforward φ).isoWhiskerLeft (PresheafOfModules.pushforwardId S) ≪≫ (PresheafOfModules.pushforward φ).rightUnitor - PresheafOfModules.pushforward_assoc 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pushforward
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {E' : Type u₄} [CategoryTheory.Category.{v₄, u₄} E'] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) {T : CategoryTheory.Functor Eᵒᵖ RingCat} {G : CategoryTheory.Functor D E} (ψ : R ⟶ G.op.comp T) {T' : CategoryTheory.Functor E'ᵒᵖ RingCat} {G' : CategoryTheory.Functor E E'} (ψ' : T ⟶ G'.op.comp T') : (PresheafOfModules.pushforward ψ').isoWhiskerLeft (PresheafOfModules.pushforwardComp φ ψ) ≪≫ PresheafOfModules.pushforwardComp (CategoryTheory.CategoryStruct.comp φ (F.op.whiskerLeft ψ)) ψ' = ((PresheafOfModules.pushforward ψ').associator (PresheafOfModules.pushforward ψ) (PresheafOfModules.pushforward φ)).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (PresheafOfModules.pushforwardComp ψ ψ') (PresheafOfModules.pushforward φ) ≪≫ PresheafOfModules.pushforwardComp φ (CategoryTheory.CategoryStruct.comp ψ (G.op.whiskerLeft ψ')) - CategoryTheory.Adjunction.leftAdjointCompIso_comp_id 📋 Mathlib.CategoryTheory.Adjunction.CompositionIso
{C₀ : Type u_1} {C₁ : Type u_2} [CategoryTheory.Category.{v_1, u_1} C₀] [CategoryTheory.Category.{v_2, u_2} C₁] {F₀₁ : CategoryTheory.Functor C₀ C₁} {F₁₁' : CategoryTheory.Functor C₁ C₁} {G₁₀ : CategoryTheory.Functor C₁ C₀} {G₁'₁ : CategoryTheory.Functor C₁ C₁} (adj₀₁ : F₀₁ ⊣ G₁₀) (adj₁₁' : F₁₁' ⊣ G₁'₁) (e₀₁₁' : G₁'₁.comp G₁₀ ≅ G₁₀) (e₁'₁ : G₁'₁ ≅ CategoryTheory.Functor.id C₁) (h : e₀₁₁' = CategoryTheory.Functor.isoWhiskerRight e₁'₁ G₁₀ ≪≫ G₁₀.leftUnitor) : adj₀₁.leftAdjointCompIso adj₁₁' adj₀₁ e₀₁₁' = F₀₁.isoWhiskerLeft (adj₁₁'.leftAdjointIdIso e₁'₁) ≪≫ F₀₁.rightUnitor - CategoryTheory.Adjunction.leftAdjointCompIso_id_comp 📋 Mathlib.CategoryTheory.Adjunction.CompositionIso
{C₀ : Type u_1} {C₁ : Type u_2} [CategoryTheory.Category.{v_1, u_1} C₀] [CategoryTheory.Category.{v_2, u_2} C₁] {F₀₀' : CategoryTheory.Functor C₀ C₀} {F₀'₁ : CategoryTheory.Functor C₀ C₁} {G₀'₀ : CategoryTheory.Functor C₀ C₀} {G₁₀' : CategoryTheory.Functor C₁ C₀} (adj₀₀' : F₀₀' ⊣ G₀'₀) (adj₀'₁ : F₀'₁ ⊣ G₁₀') (e₀₀'₁ : G₁₀'.comp G₀'₀ ≅ G₁₀') (e₀'₀ : G₀'₀ ≅ CategoryTheory.Functor.id C₀) (h : e₀₀'₁ = G₁₀'.isoWhiskerLeft e₀'₀ ≪≫ G₁₀'.rightUnitor) : adj₀₀'.leftAdjointCompIso adj₀'₁ adj₀'₁ e₀₀'₁ = CategoryTheory.Functor.isoWhiskerRight (adj₀₀'.leftAdjointIdIso e₀'₀) F₀'₁ ≪≫ F₀'₁.leftUnitor - CategoryTheory.Adjunction.leftAdjointCompIso_assoc 📋 Mathlib.CategoryTheory.Adjunction.CompositionIso
{C₀ : Type u_1} {C₁ : Type u_2} {C₂ : Type u_3} {C₃ : Type u_4} [CategoryTheory.Category.{v_1, u_1} C₀] [CategoryTheory.Category.{v_2, u_2} C₁] [CategoryTheory.Category.{v_3, u_3} C₂] [CategoryTheory.Category.{v_4, u_4} C₃] {F₀₁ : CategoryTheory.Functor C₀ C₁} {F₁₂ : CategoryTheory.Functor C₁ C₂} {F₂₃ : CategoryTheory.Functor C₂ C₃} {F₀₂ : CategoryTheory.Functor C₀ C₂} {F₁₃ : CategoryTheory.Functor C₁ C₃} {F₀₃ : CategoryTheory.Functor C₀ C₃} {G₁₀ : CategoryTheory.Functor C₁ C₀} {G₂₁ : CategoryTheory.Functor C₂ C₁} {G₃₂ : CategoryTheory.Functor C₃ C₂} {G₂₀ : CategoryTheory.Functor C₂ C₀} {G₃₁ : CategoryTheory.Functor C₃ C₁} {G₃₀ : CategoryTheory.Functor C₃ C₀} (adj₀₁ : F₀₁ ⊣ G₁₀) (adj₁₂ : F₁₂ ⊣ G₂₁) (adj₂₃ : F₂₃ ⊣ G₃₂) (adj₀₂ : F₀₂ ⊣ G₂₀) (adj₁₃ : F₁₃ ⊣ G₃₁) (adj₀₃ : F₀₃ ⊣ G₃₀) (e₀₁₂ : G₂₁.comp G₁₀ ≅ G₂₀) (e₁₂₃ : G₃₂.comp G₂₁ ≅ G₃₁) (e₀₁₃ : G₃₁.comp G₁₀ ≅ G₃₀) (e₀₂₃ : G₃₂.comp G₂₀ ≅ G₃₀) (h : G₃₂.isoWhiskerLeft e₀₁₂ ≪≫ e₀₂₃ = (G₃₂.associator G₂₁ G₁₀).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight e₁₂₃ G₁₀ ≪≫ e₀₁₃) : F₀₁.isoWhiskerLeft (adj₁₂.leftAdjointCompIso adj₂₃ adj₁₃ e₁₂₃) ≪≫ adj₀₁.leftAdjointCompIso adj₁₃ adj₀₃ e₀₁₃ = (F₀₁.associator F₁₂ F₂₃).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (adj₀₁.leftAdjointCompIso adj₁₂ adj₀₂ e₀₁₂) F₂₃ ≪≫ adj₀₂.leftAdjointCompIso adj₂₃ adj₀₃ e₀₂₃ - PresheafOfModules.pullback_comp_id 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pullback
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) [(PresheafOfModules.pushforward φ).IsRightAdjoint] : PresheafOfModules.pullbackComp φ (CategoryTheory.CategoryStruct.id R) = (PresheafOfModules.pullback φ).isoWhiskerLeft (PresheafOfModules.pullbackId R) ≪≫ (PresheafOfModules.pullback φ).rightUnitor - PresheafOfModules.pullback_id_comp 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pullback
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) [(PresheafOfModules.pushforward φ).IsRightAdjoint] : PresheafOfModules.pullbackComp (CategoryTheory.CategoryStruct.id S) φ = CategoryTheory.Functor.isoWhiskerRight (PresheafOfModules.pullbackId S) (PresheafOfModules.pullback φ) ≪≫ (PresheafOfModules.pullback φ).leftUnitor - PresheafOfModules.pullback_assoc 📋 Mathlib.Algebra.Category.ModuleCat.Presheaf.Pullback
{C : Type u₁} [CategoryTheory.Category.{v₁, u₁} C] {D : Type u₂} [CategoryTheory.Category.{v₂, u₂} D] {E : Type u₃} [CategoryTheory.Category.{v₃, u₃} E] {E' : Type u₄} [CategoryTheory.Category.{v₄, u₄} E'] {F : CategoryTheory.Functor C D} {R : CategoryTheory.Functor Dᵒᵖ RingCat} {S : CategoryTheory.Functor Cᵒᵖ RingCat} (φ : S ⟶ F.op.comp R) {G : CategoryTheory.Functor D E} {T : CategoryTheory.Functor Eᵒᵖ RingCat} (ψ : R ⟶ G.op.comp T) [(PresheafOfModules.pushforward φ).IsRightAdjoint] [(PresheafOfModules.pushforward ψ).IsRightAdjoint] {T' : CategoryTheory.Functor E'ᵒᵖ RingCat} {G' : CategoryTheory.Functor E E'} (ψ' : T ⟶ G'.op.comp T') [(PresheafOfModules.pushforward ψ').IsRightAdjoint] : (PresheafOfModules.pullback φ).isoWhiskerLeft (PresheafOfModules.pullbackComp ψ ψ') ≪≫ PresheafOfModules.pullbackComp φ (CategoryTheory.CategoryStruct.comp ψ (G.op.whiskerLeft ψ')) = ((PresheafOfModules.pullback φ).associator (PresheafOfModules.pullback ψ) (PresheafOfModules.pullback ψ')).symm ≪≫ CategoryTheory.Functor.isoWhiskerRight (PresheafOfModules.pullbackComp φ ψ) (PresheafOfModules.pullback ψ') ≪≫ PresheafOfModules.pullbackComp (CategoryTheory.CategoryStruct.comp φ (F.op.whiskerLeft ψ)) ψ'
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