category_theory.limits.preserves.limitsMathlib.CategoryTheory.Limits.Preserves.Limits

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
 -/
-import Mathbin.CategoryTheory.Limits.Preserves.Basic
+import CategoryTheory.Limits.Preserves.Basic
 
 #align_import category_theory.limits.preserves.limits from "leanprover-community/mathlib"@"832f7b9162039c28b9361289c8681f155cae758f"
 
Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.limits
-! leanprover-community/mathlib commit 832f7b9162039c28b9361289c8681f155cae758f
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.Limits.Preserves.Basic
 
+#align_import category_theory.limits.preserves.limits from "leanprover-community/mathlib"@"832f7b9162039c28b9361289c8681f155cae758f"
+
 /-!
 # Isomorphisms about functors which preserve (co)limits
 
Diff
@@ -48,41 +48,52 @@ section
 
 variable [PreservesLimit F G]
 
+#print CategoryTheory.preserves_lift_mapCone /-
 @[simp]
 theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
     (PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂) :=
   ((PreservesLimit.preserves t).uniq (G.mapCone c₂) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapCone
+-/
 
 variable [HasLimit F] [HasLimit (F ⋙ G)]
 
+#print CategoryTheory.preservesLimitIso /-
 /-- If `G` preserves limits, we have an isomorphism from the image of the limit of a functor `F`
 to the limit of the functor `F ⋙ G`.
 -/
 def preservesLimitIso : G.obj (limit F) ≅ limit (F ⋙ G) :=
   (PreservesLimit.preserves (limit.isLimit _)).conePointUniqueUpToIso (limit.isLimit _)
 #align category_theory.preserves_limit_iso CategoryTheory.preservesLimitIso
+-/
 
+#print CategoryTheory.preservesLimitsIso_hom_π /-
 @[simp, reassoc]
 theorem preservesLimitsIso_hom_π (j) :
     (preservesLimitIso G F).Hom ≫ limit.π _ j = G.map (limit.π F j) :=
   IsLimit.conePointUniqueUpToIso_hom_comp _ _ j
 #align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_π
+-/
 
+#print CategoryTheory.preservesLimitsIso_inv_π /-
 @[simp, reassoc]
 theorem preservesLimitsIso_inv_π (j) :
     (preservesLimitIso G F).inv ≫ G.map (limit.π F j) = limit.π _ j :=
   IsLimit.conePointUniqueUpToIso_inv_comp _ _ j
 #align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_π
+-/
 
+#print CategoryTheory.lift_comp_preservesLimitsIso_hom /-
 @[simp, reassoc]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
     G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) := by
   ext; simp [← G.map_comp]
 #align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_hom
+-/
 
 variable [PreservesLimitsOfShape J G] [HasLimitsOfShape J D] [HasLimitsOfShape J C]
 
+#print CategoryTheory.preservesLimitNatIso /-
 /-- If `C, D` has all limits of shape `J`, and `G` preserves them, then `preserves_limit_iso` is
 functorial wrt `F`. -/
 @[simps]
@@ -95,6 +106,7 @@ def preservesLimitNatIso : lim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ lim :
       simp only [preserves_limits_iso_hom_π, whisker_right_app, lim_map_π, category.assoc,
         preserves_limits_iso_hom_π_assoc, ← G.map_comp])
 #align category_theory.preserves_limit_nat_iso CategoryTheory.preservesLimitNatIso
+-/
 
 end
 
@@ -102,14 +114,17 @@ section
 
 variable [PreservesColimit F G]
 
+#print CategoryTheory.preserves_desc_mapCocone /-
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
     (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) :=
   ((PreservesColimit.preserves t).uniq (G.mapCocone _) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCocone
+-/
 
 variable [HasColimit F] [HasColimit (F ⋙ G)]
 
+#print CategoryTheory.preservesColimitIso /-
 -- TODO: think about swapping the order here
 /-- If `G` preserves colimits, we have an isomorphism from the image of the colimit of a functor `F`
 to the colimit of the functor `F ⋙ G`.
@@ -117,27 +132,35 @@ to the colimit of the functor `F ⋙ G`.
 def preservesColimitIso : G.obj (colimit F) ≅ colimit (F ⋙ G) :=
   (PreservesColimit.preserves (colimit.isColimit _)).coconePointUniqueUpToIso (colimit.isColimit _)
 #align category_theory.preserves_colimit_iso CategoryTheory.preservesColimitIso
+-/
 
+#print CategoryTheory.ι_preservesColimitsIso_inv /-
 @[simp, reassoc]
 theorem ι_preservesColimitsIso_inv (j : J) :
     colimit.ι _ j ≫ (preservesColimitIso G F).inv = G.map (colimit.ι F j) :=
   IsColimit.comp_coconePointUniqueUpToIso_inv _ (colimit.isColimit (F ⋙ G)) j
 #align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_inv
+-/
 
+#print CategoryTheory.ι_preservesColimitsIso_hom /-
 @[simp, reassoc]
 theorem ι_preservesColimitsIso_hom (j : J) :
     G.map (colimit.ι F j) ≫ (preservesColimitIso G F).Hom = colimit.ι (F ⋙ G) j :=
   (PreservesColimit.preserves (colimit.isColimit _)).comp_coconePointUniqueUpToIso_hom _ j
 #align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_hom
+-/
 
+#print CategoryTheory.preservesColimitsIso_inv_comp_desc /-
 @[simp, reassoc]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
     (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) := by
   ext; simp [← G.map_comp]
 #align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_desc
+-/
 
 variable [PreservesColimitsOfShape J G] [HasColimitsOfShape J D] [HasColimitsOfShape J C]
 
+#print CategoryTheory.preservesColimitNatIso /-
 /-- If `C, D` has all colimits of shape `J`, and `G` preserves them, then `preserves_colimit_iso`
 is functorial wrt `F`. -/
 @[simps]
@@ -153,6 +176,7 @@ def preservesColimitNatIso : colim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ c
         ι_preserves_colimits_iso_inv_assoc, ← G.map_comp]
       erw [ι_colim_map])
 #align category_theory.preserves_colimit_nat_iso CategoryTheory.preservesColimitNatIso
+-/
 
 end
 
Diff
@@ -48,12 +48,6 @@ section
 
 variable [PreservesLimit F G]
 
-/- warning: category_theory.preserves_lift_map_cone -> CategoryTheory.preserves_lift_mapCone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapConeₓ'. -/
 @[simp]
 theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
     (PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂) :=
@@ -62,12 +56,6 @@ theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
 
 variable [HasLimit F] [HasLimit (F ⋙ G)]
 
-/- warning: category_theory.preserves_limit_iso -> CategoryTheory.preservesLimitIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limit_iso CategoryTheory.preservesLimitIsoₓ'. -/
 /-- If `G` preserves limits, we have an isomorphism from the image of the limit of a functor `F`
 to the limit of the functor `F ⋙ G`.
 -/
@@ -75,36 +63,18 @@ def preservesLimitIso : G.obj (limit F) ≅ limit (F ⋙ G) :=
   (PreservesLimit.preserves (limit.isLimit _)).conePointUniqueUpToIso (limit.isLimit _)
 #align category_theory.preserves_limit_iso CategoryTheory.preservesLimitIso
 
-/- warning: category_theory.preserves_limits_iso_hom_π -> CategoryTheory.preservesLimitsIso_hom_π is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_πₓ'. -/
 @[simp, reassoc]
 theorem preservesLimitsIso_hom_π (j) :
     (preservesLimitIso G F).Hom ≫ limit.π _ j = G.map (limit.π F j) :=
   IsLimit.conePointUniqueUpToIso_hom_comp _ _ j
 #align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_π
 
-/- warning: category_theory.preserves_limits_iso_inv_π -> CategoryTheory.preservesLimitsIso_inv_π is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_πₓ'. -/
 @[simp, reassoc]
 theorem preservesLimitsIso_inv_π (j) :
     (preservesLimitIso G F).inv ≫ G.map (limit.π F j) = limit.π _ j :=
   IsLimit.conePointUniqueUpToIso_inv_comp _ _ j
 #align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_π
 
-/- warning: category_theory.lift_comp_preserves_limits_iso_hom -> CategoryTheory.lift_comp_preservesLimitsIso_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
-Case conversion may be inaccurate. Consider using '#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_homₓ'. -/
 @[simp, reassoc]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
     G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) := by
@@ -113,12 +83,6 @@ theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
 
 variable [PreservesLimitsOfShape J G] [HasLimitsOfShape J D] [HasLimitsOfShape J C]
 
-/- warning: category_theory.preserves_limit_nat_iso -> CategoryTheory.preservesLimitNatIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesLimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max u1 u3 u2 u5) u4, max (max u2 u3) u4 (max u1 u3 u2 u5) u6} (CategoryTheory.Functor.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, u3, u4, max u1 u3 u2 u5, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.lim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u4, u4, max u1 u3 u2 u5, max u1 u4 u2 u6, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (CategoryTheory.Functor.obj.{max u5 u4, max (max u1 u3 u2 u5) u2 u4, max u3 u4 u5 u6, max (max u2 u3) (max u2 u4) (max u1 u3 u2 u5) u1 u4 u2 u6} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2) G) (CategoryTheory.Limits.lim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesLimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max (max (max u5 u3) u4) u2) u1, max (max (max u6 (max (max u5 u3) u2) u1) u4) u3 u2} (CategoryTheory.Functor.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, u3, u4, max (max (max u5 u3) u2) u1, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.lim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u3 u2, max u4 u2, u4, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (Prefunctor.obj.{max (succ u5) (succ u4), max (max (max (max (succ u5) (succ u3)) (succ u4)) (succ u2)) (succ u1), max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2))) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u5 u4, max (max (max (max u5 u3) u4) u2) u1, max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2)) G) (CategoryTheory.Limits.lim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limit_nat_iso CategoryTheory.preservesLimitNatIsoₓ'. -/
 /-- If `C, D` has all limits of shape `J`, and `G` preserves them, then `preserves_limit_iso` is
 functorial wrt `F`. -/
 @[simps]
@@ -138,12 +102,6 @@ section
 
 variable [PreservesColimit F G]
 
-/- warning: category_theory.preserves_desc_map_cocone -> CategoryTheory.preserves_desc_mapCocone is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCoconeₓ'. -/
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
     (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) :=
@@ -152,12 +110,6 @@ theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
 
 variable [HasColimit F] [HasColimit (F ⋙ G)]
 
-/- warning: category_theory.preserves_colimit_iso -> CategoryTheory.preservesColimitIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimit_iso CategoryTheory.preservesColimitIsoₓ'. -/
 -- TODO: think about swapping the order here
 /-- If `G` preserves colimits, we have an isomorphism from the image of the colimit of a functor `F`
 to the colimit of the functor `F ⋙ G`.
@@ -166,36 +118,18 @@ def preservesColimitIso : G.obj (colimit F) ≅ colimit (F ⋙ G) :=
   (PreservesColimit.preserves (colimit.isColimit _)).coconePointUniqueUpToIso (colimit.isColimit _)
 #align category_theory.preserves_colimit_iso CategoryTheory.preservesColimitIso
 
-/- warning: category_theory.ι_preserves_colimits_iso_inv -> CategoryTheory.ι_preservesColimitsIso_inv is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
-Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_invₓ'. -/
 @[simp, reassoc]
 theorem ι_preservesColimitsIso_inv (j : J) :
     colimit.ι _ j ≫ (preservesColimitIso G F).inv = G.map (colimit.ι F j) :=
   IsColimit.comp_coconePointUniqueUpToIso_inv _ (colimit.isColimit (F ⋙ G)) j
 #align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_inv
 
-/- warning: category_theory.ι_preserves_colimits_iso_hom -> CategoryTheory.ι_preservesColimitsIso_hom is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
-Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_homₓ'. -/
 @[simp, reassoc]
 theorem ι_preservesColimitsIso_hom (j : J) :
     G.map (colimit.ι F j) ≫ (preservesColimitIso G F).Hom = colimit.ι (F ⋙ G) j :=
   (PreservesColimit.preserves (colimit.isColimit _)).comp_coconePointUniqueUpToIso_hom _ j
 #align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_hom
 
-/- warning: category_theory.preserves_colimits_iso_inv_comp_desc -> CategoryTheory.preservesColimitsIso_inv_comp_desc is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_descₓ'. -/
 @[simp, reassoc]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
     (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) := by
@@ -204,12 +138,6 @@ theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
 
 variable [PreservesColimitsOfShape J G] [HasColimitsOfShape J D] [HasColimitsOfShape J C]
 
-/- warning: category_theory.preserves_colimit_nat_iso -> CategoryTheory.preservesColimitNatIso is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesColimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max u1 u3 u2 u5) u4, max (max u2 u3) u4 (max u1 u3 u2 u5) u6} (CategoryTheory.Functor.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, u3, u4, max u1 u3 u2 u5, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.colim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u4, u4, max u1 u3 u2 u5, max u1 u4 u2 u6, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (CategoryTheory.Functor.obj.{max u5 u4, max (max u1 u3 u2 u5) u2 u4, max u3 u4 u5 u6, max (max u2 u3) (max u2 u4) (max u1 u3 u2 u5) u1 u4 u2 u6} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2) G) (CategoryTheory.Limits.colim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
-but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesColimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max (max (max u5 u3) u4) u2) u1, max (max (max u6 (max (max u5 u3) u2) u1) u4) u3 u2} (CategoryTheory.Functor.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, u3, u4, max (max (max u5 u3) u2) u1, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.colim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u3 u2, max u4 u2, u4, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (Prefunctor.obj.{max (succ u5) (succ u4), max (max (max (max (succ u5) (succ u3)) (succ u4)) (succ u2)) (succ u1), max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2))) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u5 u4, max (max (max (max u5 u3) u4) u2) u1, max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2)) G) (CategoryTheory.Limits.colim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
-Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimit_nat_iso CategoryTheory.preservesColimitNatIsoₓ'. -/
 /-- If `C, D` has all colimits of shape `J`, and `G` preserves them, then `preserves_colimit_iso`
 is functorial wrt `F`. -/
 @[simps]
Diff
@@ -107,10 +107,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_homₓ'. -/
 @[simp, reassoc]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
-    G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) :=
-  by
-  ext
-  simp [← G.map_comp]
+    G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) := by
+  ext; simp [← G.map_comp]
 #align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_hom
 
 variable [PreservesLimitsOfShape J G] [HasLimitsOfShape J D] [HasLimitsOfShape J C]
@@ -200,10 +198,8 @@ but is expected to have type
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_descₓ'. -/
 @[simp, reassoc]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
-    (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) :=
-  by
-  ext
-  simp [← G.map_comp]
+    (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) := by
+  ext; simp [← G.map_comp]
 #align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_desc
 
 variable [PreservesColimitsOfShape J G] [HasColimitsOfShape J D] [HasColimitsOfShape J C]
Diff
@@ -81,7 +81,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_πₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem preservesLimitsIso_hom_π (j) :
     (preservesLimitIso G F).Hom ≫ limit.π _ j = G.map (limit.π F j) :=
   IsLimit.conePointUniqueUpToIso_hom_comp _ _ j
@@ -93,7 +93,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_πₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem preservesLimitsIso_inv_π (j) :
     (preservesLimitIso G F).inv ≫ G.map (limit.π F j) = limit.π _ j :=
   IsLimit.conePointUniqueUpToIso_inv_comp _ _ j
@@ -105,7 +105,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
 Case conversion may be inaccurate. Consider using '#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_homₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
     G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) :=
   by
@@ -174,7 +174,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
 Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_invₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem ι_preservesColimitsIso_inv (j : J) :
     colimit.ι _ j ≫ (preservesColimitIso G F).inv = G.map (colimit.ι F j) :=
   IsColimit.comp_coconePointUniqueUpToIso_inv _ (colimit.isColimit (F ⋙ G)) j
@@ -186,7 +186,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
 Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_homₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem ι_preservesColimitsIso_hom (j : J) :
     G.map (colimit.ι F j) ≫ (preservesColimitIso G F).Hom = colimit.ι (F ⋙ G) j :=
   (PreservesColimit.preserves (colimit.isColimit _)).comp_coconePointUniqueUpToIso_hom _ j
@@ -198,7 +198,7 @@ lean 3 declaration is
 but is expected to have type
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_descₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
     (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) :=
   by
Diff
@@ -52,7 +52,7 @@ variable [PreservesLimit F G]
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapConeₓ'. -/
 @[simp]
 theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
@@ -103,7 +103,7 @@ theorem preservesLimitsIso_inv_π (j) :
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
 Case conversion may be inaccurate. Consider using '#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_homₓ'. -/
 @[simp, reassoc.1]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
@@ -144,7 +144,7 @@ variable [PreservesColimit F G]
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCoconeₓ'. -/
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
@@ -196,7 +196,7 @@ theorem ι_preservesColimitsIso_hom (j : J) :
 lean 3 declaration is
   forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
 but is expected to have type
-  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 G F t))
 Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_descₓ'. -/
 @[simp, reassoc.1]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.limits.preserves.limits
-! leanprover-community/mathlib commit 9a8e9fa5b9303f03015eff7646b1a9f66f403033
+! leanprover-community/mathlib commit 832f7b9162039c28b9361289c8681f155cae758f
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.Limits.Preserves.Basic
 /-!
 # Isomorphisms about functors which preserve (co)limits
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 If `G` preserves limits, and `C` and `D` have limits, then for any diagram `F : J ⥤ C` we have a
 canonical isomorphism `preserves_limit_iso : G.obj (limit F) ≅ limit (F ⋙ G)`.
 We also show that we can commute `is_limit.lift` of a preserved limit with `functor.map_cone`:
Diff
@@ -45,6 +45,12 @@ section
 
 variable [PreservesLimit F G]
 
+/- warning: category_theory.preserves_lift_map_cone -> CategoryTheory.preserves_lift_mapCone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsLimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Limits.Cone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁))) (CategoryTheory.Limits.IsLimit.lift.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesLimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.IsLimit.lift.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapConeₓ'. -/
 @[simp]
 theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
     (PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂) :=
@@ -53,6 +59,12 @@ theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
 
 variable [HasLimit F] [HasLimit (F ⋙ G)]
 
+/- warning: category_theory.preserves_limit_iso -> CategoryTheory.preservesLimitIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limit_iso CategoryTheory.preservesLimitIsoₓ'. -/
 /-- If `G` preserves limits, we have an isomorphism from the image of the limit of a functor `F`
 to the limit of the functor `F ⋙ G`.
 -/
@@ -60,28 +72,52 @@ def preservesLimitIso : G.obj (limit F) ≅ limit (F ⋙ G) :=
   (PreservesLimit.preserves (limit.isLimit _)).conePointUniqueUpToIso (limit.isLimit _)
 #align category_theory.preserves_limit_iso CategoryTheory.preservesLimitIso
 
+/- warning: category_theory.preserves_limits_iso_hom_π -> CategoryTheory.preservesLimitsIso_hom_π is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_πₓ'. -/
 @[simp, reassoc.1]
-theorem preserves_limits_iso_hom_π (j) :
+theorem preservesLimitsIso_hom_π (j) :
     (preservesLimitIso G F).Hom ≫ limit.π _ j = G.map (limit.π F j) :=
   IsLimit.conePointUniqueUpToIso_hom_comp _ _ j
-#align category_theory.preserves_limits_iso_hom_π CategoryTheory.preserves_limits_iso_hom_π
-
+#align category_theory.preserves_limits_iso_hom_π CategoryTheory.preservesLimitsIso_hom_π
+
+/- warning: category_theory.preserves_limits_iso_inv_π -> CategoryTheory.preservesLimitsIso_inv_π is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.limit.π.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))) (CategoryTheory.Limits.limit.π.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_πₓ'. -/
 @[simp, reassoc.1]
-theorem preserves_limits_iso_inv_π (j) :
+theorem preservesLimitsIso_inv_π (j) :
     (preservesLimitIso G F).inv ≫ G.map (limit.π F j) = limit.π _ j :=
   IsLimit.conePointUniqueUpToIso_inv_comp _ _ j
-#align category_theory.preserves_limits_iso_inv_π CategoryTheory.preserves_limits_iso_inv_π
-
+#align category_theory.preserves_limits_iso_inv_π CategoryTheory.preservesLimitsIso_inv_π
+
+/- warning: category_theory.lift_comp_preserves_limits_iso_hom -> CategoryTheory.lift_comp_preservesLimitsIso_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesLimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasLimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasLimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.limit.lift.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.limit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.limit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesLimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.limit.lift.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+Case conversion may be inaccurate. Consider using '#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_homₓ'. -/
 @[simp, reassoc.1]
-theorem lift_comp_preserves_limits_iso_hom (t : Cone F) :
+theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
     G.map (limit.lift _ t) ≫ (preservesLimitIso G F).Hom = limit.lift (F ⋙ G) (G.mapCone _) :=
   by
   ext
   simp [← G.map_comp]
-#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preserves_limits_iso_hom
+#align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_hom
 
 variable [PreservesLimitsOfShape J G] [HasLimitsOfShape J D] [HasLimitsOfShape J C]
 
+/- warning: category_theory.preserves_limit_nat_iso -> CategoryTheory.preservesLimitNatIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesLimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max u1 u3 u2 u5) u4, max (max u2 u3) u4 (max u1 u3 u2 u5) u6} (CategoryTheory.Functor.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, u3, u4, max u1 u3 u2 u5, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.lim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u4, u4, max u1 u3 u2 u5, max u1 u4 u2 u6, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (CategoryTheory.Functor.obj.{max u5 u4, max (max u1 u3 u2 u5) u2 u4, max u3 u4 u5 u6, max (max u2 u3) (max u2 u4) (max u1 u3 u2 u5) u1 u4 u2 u6} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2) G) (CategoryTheory.Limits.lim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesLimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasLimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max (max (max u5 u3) u4) u2) u1, max (max (max u6 (max (max u5 u3) u2) u1) u4) u3 u2} (CategoryTheory.Functor.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, u3, u4, max (max (max u5 u3) u2) u1, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.lim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u3 u2, max u4 u2, u4, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (Prefunctor.obj.{max (succ u5) (succ u4), max (max (max (max (succ u5) (succ u3)) (succ u4)) (succ u2)) (succ u1), max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2))) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u5 u4, max (max (max (max u5 u3) u4) u2) u1, max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2)) G) (CategoryTheory.Limits.lim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_limit_nat_iso CategoryTheory.preservesLimitNatIsoₓ'. -/
 /-- If `C, D` has all limits of shape `J`, and `G` preserves them, then `preserves_limit_iso` is
 functorial wrt `F`. -/
 @[simps]
@@ -101,6 +137,12 @@ section
 
 variable [PreservesColimit F G]
 
+/- warning: category_theory.preserves_desc_map_cocone -> CategoryTheory.preserves_desc_mapCocone is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] (c₁ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (c₂ : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) (t : CategoryTheory.Limits.IsColimit.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁)) (CategoryTheory.Limits.Cocone.pt.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂))) (CategoryTheory.Limits.IsColimit.desc.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₁) (CategoryTheory.Limits.PreservesColimit.preserves.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G _inst_4 c₁ t) (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G c₂)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₂) (CategoryTheory.Limits.IsColimit.desc.{u1, u3, u2, u5} J _inst_3 C _inst_1 F c₁ t c₂))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCoconeₓ'. -/
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
     (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) :=
@@ -109,6 +151,12 @@ theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
 
 variable [HasColimit F] [HasColimit (F ⋙ G)]
 
+/- warning: category_theory.preserves_colimit_iso -> CategoryTheory.preservesColimitIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)], CategoryTheory.Iso.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimit_iso CategoryTheory.preservesColimitIsoₓ'. -/
 -- TODO: think about swapping the order here
 /-- If `G` preserves colimits, we have an isomorphism from the image of the colimit of a functor `F`
 to the colimit of the functor `F ⋙ G`.
@@ -117,28 +165,52 @@ def preservesColimitIso : G.obj (colimit F) ≅ colimit (F ⋙ G) :=
   (PreservesColimit.preserves (colimit.isColimit _)).coconePointUniqueUpToIso (colimit.isColimit _)
 #align category_theory.preserves_colimit_iso CategoryTheory.preservesColimitIso
 
+/- warning: category_theory.ι_preserves_colimits_iso_inv -> CategoryTheory.ι_preservesColimitsIso_inv is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) j) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u1, succ u4, u2, u6} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u4, u2, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)) j) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j))
+Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_invₓ'. -/
 @[simp, reassoc.1]
-theorem ι_preserves_colimits_iso_inv (j : J) :
+theorem ι_preservesColimitsIso_inv (j : J) :
     colimit.ι _ j ≫ (preservesColimitIso G F).inv = G.map (colimit.ι F j) :=
   IsColimit.comp_coconePointUniqueUpToIso_inv _ (colimit.isColimit (F ⋙ G)) j
-#align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preserves_colimits_iso_inv
-
+#align category_theory.ι_preserves_colimits_iso_inv CategoryTheory.ι_preservesColimitsIso_inv
+
+/- warning: category_theory.ι_preserves_colimits_iso_hom -> CategoryTheory.ι_preservesColimitsIso_hom is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Functor.obj.{u1, u3, u2, u5} J _inst_3 C _inst_1 F j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (j : J), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6)) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (Prefunctor.obj.{succ u1, succ u3, u2, u5} J (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} J (CategoryTheory.Category.toCategoryStruct.{u1, u2} J _inst_3)) C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u3, u2, u5} J _inst_3 C _inst_1 F) j) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.colimit.ι.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 j)) (CategoryTheory.Iso.hom.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6))) (CategoryTheory.Limits.colimit.ι.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 j)
+Case conversion may be inaccurate. Consider using '#align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_homₓ'. -/
 @[simp, reassoc.1]
-theorem ι_preserves_colimits_iso_hom (j : J) :
+theorem ι_preservesColimitsIso_hom (j : J) :
     G.map (colimit.ι F j) ≫ (preservesColimitIso G F).Hom = colimit.ι (F ⋙ G) j :=
   (PreservesColimit.preserves (colimit.isColimit _)).comp_coconePointUniqueUpToIso_hom _ j
-#align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preserves_colimits_iso_hom
-
+#align category_theory.ι_preserves_colimits_iso_hom CategoryTheory.ι_preservesColimitsIso_hom
+
+/- warning: category_theory.preserves_colimits_iso_inv_comp_desc -> CategoryTheory.preservesColimitsIso_inv_comp_desc is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (CategoryTheory.Functor.obj.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (CategoryTheory.Functor.map.{u3, u4, u5, u6} C _inst_1 D _inst_2 G (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] (F : CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) [_inst_4 : CategoryTheory.Limits.PreservesColimit.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 F G] [_inst_5 : CategoryTheory.Limits.HasColimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F] [_inst_6 : CategoryTheory.Limits.HasColimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G)] (t : CategoryTheory.Limits.Cocone.{u1, u3, u2, u5} J _inst_3 C _inst_1 F), Eq.{succ u4} (Quiver.Hom.{succ u4, u6} D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t))) (CategoryTheory.CategoryStruct.comp.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t)) (CategoryTheory.Iso.inv.{u4, u6} D _inst_2 (Prefunctor.obj.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5)) (CategoryTheory.Limits.colimit.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6) (CategoryTheory.preservesColimitIso.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 G J _inst_3 F _inst_4 _inst_5 _inst_6)) (Prefunctor.map.{succ u3, succ u4, u5, u6} C (CategoryTheory.CategoryStruct.toQuiver.{u3, u5} C (CategoryTheory.Category.toCategoryStruct.{u3, u5} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u4, u6} D (CategoryTheory.Category.toCategoryStruct.{u4, u6} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u3, u4, u5, u6} C _inst_1 D _inst_2 G) (CategoryTheory.Limits.colimit.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5) (CategoryTheory.Limits.Cocone.pt.{u1, u3, u2, u5} J _inst_3 C _inst_1 F t) (CategoryTheory.Limits.colimit.desc.{u1, u2, u3, u5} J _inst_3 C _inst_1 F _inst_5 t))) (CategoryTheory.Limits.colimit.desc.{u1, u2, u4, u6} J _inst_3 D _inst_2 (CategoryTheory.Functor.comp.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G) _inst_6 (CategoryTheory.Functor.mapCocone.{u1, u3, u4, u2, u5, u6} J _inst_3 C _inst_1 D _inst_2 F G t))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_descₓ'. -/
 @[simp, reassoc.1]
-theorem preserves_colimits_iso_inv_comp_desc (t : Cocone F) :
+theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
     (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = colimit.desc _ (G.mapCocone t) :=
   by
   ext
   simp [← G.map_comp]
-#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preserves_colimits_iso_inv_comp_desc
+#align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_desc
 
 variable [PreservesColimitsOfShape J G] [HasColimitsOfShape J D] [HasColimitsOfShape J C]
 
+/- warning: category_theory.preserves_colimit_nat_iso -> CategoryTheory.preservesColimitNatIso is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesColimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max u1 u3 u2 u5) u4, max (max u2 u3) u4 (max u1 u3 u2 u5) u6} (CategoryTheory.Functor.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u2 u3, u4, max u1 u3 u2 u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u2 u3, u3, u4, max u1 u3 u2 u5, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.colim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u2 u3, max u2 u4, u4, max u1 u3 u2 u5, max u1 u4 u2 u6, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (CategoryTheory.Functor.obj.{max u5 u4, max (max u1 u3 u2 u5) u2 u4, max u3 u4 u5 u6, max (max u2 u3) (max u2 u4) (max u1 u3 u2 u5) u1 u4 u2 u6} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max u1 u3 u2 u5, max u1 u4 u2 u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2) G) (CategoryTheory.Limits.colim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
+but is expected to have type
+  forall {C : Type.{u5}} [_inst_1 : CategoryTheory.Category.{u3, u5} C] {D : Type.{u6}} [_inst_2 : CategoryTheory.Category.{u4, u6} D] (G : CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) {J : Type.{u2}} [_inst_3 : CategoryTheory.Category.{u1, u2} J] [_inst_7 : CategoryTheory.Limits.PreservesColimitsOfShape.{u1, u2, u3, u4, u5, u6} C _inst_1 D _inst_2 J _inst_3 G] [_inst_8 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u4, u6} J _inst_3 D _inst_2] [_inst_9 : CategoryTheory.Limits.HasColimitsOfShape.{u1, u2, u3, u5} J _inst_3 C _inst_1], CategoryTheory.Iso.{max (max (max (max u5 u3) u4) u2) u1, max (max (max u6 (max (max u5 u3) u2) u1) u4) u3 u2} (CategoryTheory.Functor.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.category.{max u3 u2, u4, max (max (max u5 u3) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) D _inst_2) (CategoryTheory.Functor.comp.{max u3 u2, u3, u4, max (max (max u5 u3) u2) u1, u5, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) C _inst_1 D _inst_2 (CategoryTheory.Limits.colim.{u1, u2, u3, u5} J _inst_3 C _inst_1 _inst_9) G) (CategoryTheory.Functor.comp.{max u3 u2, max u4 u2, u4, max (max (max u5 u3) u2) u1, max (max (max u6 u4) u2) u1, u6} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2) D _inst_2 (Prefunctor.obj.{max (succ u5) (succ u4), max (max (max (max (succ u5) (succ u3)) (succ u4)) (succ u2)) (succ u1), max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.CategoryStruct.toQuiver.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Category.toCategoryStruct.{max u5 u4, max (max (max u5 u6) u3) u4} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2))) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.CategoryStruct.toQuiver.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Category.toCategoryStruct.{max (max (max (max u5 u3) u4) u2) u1, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)))) (CategoryTheory.Functor.toPrefunctor.{max u5 u4, max (max (max (max u5 u3) u4) u2) u1, max (max (max u5 u6) u3) u4, max (max (max (max (max u5 u6) u3) u4) u2) u1} (CategoryTheory.Functor.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.category.{u3, u4, u5, u6} C _inst_1 D _inst_2) (CategoryTheory.Functor.{max u2 u3, max u2 u4, max (max (max u5 u2) u3) u1, max (max (max u6 u2) u4) u1} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.Functor.category.{max u2 u3, max u2 u4, max (max (max u2 u5) u1) u3, max (max (max u2 u6) u1) u4} (CategoryTheory.Functor.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.category.{u1, u3, u2, u5} J _inst_3 C _inst_1) (CategoryTheory.Functor.{u1, u4, u2, u6} J _inst_3 D _inst_2) (CategoryTheory.Functor.category.{u1, u4, u2, u6} J _inst_3 D _inst_2)) (CategoryTheory.whiskeringRight.{u2, u1, u5, u3, u6, u4} J _inst_3 C _inst_1 D _inst_2)) G) (CategoryTheory.Limits.colim.{u1, u2, u4, u6} J _inst_3 D _inst_2 _inst_8))
+Case conversion may be inaccurate. Consider using '#align category_theory.preserves_colimit_nat_iso CategoryTheory.preservesColimitNatIsoₓ'. -/
 /-- If `C, D` has all colimits of shape `J`, and `G` preserves them, then `preserves_colimit_iso`
 is functorial wrt `F`. -/
 @[simps]

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
  for filename in files:
    if filename.endswith('.lean'):
      file_path = os.path.join(dir_path, filename)

      # Open the file and read its contents
      with open(file_path, 'r') as file:
        content = file.read()

      # Use a regular expression to replace sequences of "variable" lines separated by empty lines
      # with sequences without empty lines
      modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -29,13 +29,9 @@ namespace CategoryTheory
 open Category Limits
 
 variable {C : Type u₁} [Category.{v₁} C]
-
 variable {D : Type u₂} [Category.{v₂} D]
-
 variable (G : C ⥤ D)
-
 variable {J : Type w} [Category.{w'} J]
-
 variable (F : J ⥤ C)
 
 section
feat: preserves colimit if colimit.post is iso (#11421)
Diff
@@ -48,7 +48,7 @@ theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
   ((PreservesLimit.preserves t).uniq (G.mapCone c₂) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapCone
 
-variable [HasLimit F] [HasLimit (F ⋙ G)]
+variable [HasLimit F]
 
 /-- If `G` preserves limits, we have an isomorphism from the image of the limit of a functor `F`
 to the limit of the functor `F ⋙ G`.
@@ -77,6 +77,9 @@ theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
   simp [← G.map_comp]
 #align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_hom
 
+instance : IsIso (limit.post F G) :=
+  show IsIso (preservesLimitIso G F).hom from inferInstance
+
 variable [PreservesLimitsOfShape J G] [HasLimitsOfShape J D] [HasLimitsOfShape J C]
 
 /-- If `C, D` has all limits of shape `J`, and `G` preserves them, then `preservesLimitsIso` is
@@ -96,6 +99,19 @@ end
 
 section
 
+variable [HasLimit F] [HasLimit (F ⋙ G)]
+
+/-- If the comparison morphism `G.obj (limit F) ⟶ limit (F ⋙ G)` is an isomorphism, then `G`
+    preserves limits of `F`. -/
+def preservesLimitOfIsIsoPost [IsIso (limit.post F G)] : PreservesLimit F G :=
+  preservesLimitOfPreservesLimitCone (limit.isLimit F) (by
+    convert IsLimit.ofPointIso (limit.isLimit (F ⋙ G))
+    assumption)
+
+end
+
+section
+
 variable [PreservesColimit F G]
 
 @[simp]
@@ -104,7 +120,7 @@ theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
   ((PreservesColimit.preserves t).uniq (G.mapCocone _) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCocone
 
-variable [HasColimit F] [HasColimit (F ⋙ G)]
+variable [HasColimit F]
 
 -- TODO: think about swapping the order here
 /-- If `G` preserves colimits, we have an isomorphism from the image of the colimit of a functor `F`
@@ -134,6 +150,9 @@ theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
   simp [← G.map_comp]
 #align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_desc
 
+instance : IsIso (colimit.post F G) :=
+  show IsIso (preservesColimitIso G F).inv from inferInstance
+
 variable [PreservesColimitsOfShape J G] [HasColimitsOfShape J D] [HasColimitsOfShape J C]
 
 /-- If `C, D` has all colimits of shape `J`, and `G` preserves them, then `preservesColimitIso`
@@ -154,4 +173,17 @@ def preservesColimitNatIso : colim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ c
 
 end
 
+section
+
+variable [HasColimit F] [HasColimit (F ⋙ G)]
+
+/-- If the comparison morphism `colimit (F ⋙ G) ⟶ G.obj (colimit F)` is an isomorphism, then `G`
+    preserves colimits of `F`. -/
+def preservesColimitOfIsIsoPost [IsIso (colimit.post F G)] : PreservesColimit F G :=
+  preservesColimitOfPreservesColimitCocone (colimit.isColimit F) (by
+    convert IsColimit.ofPointIso (colimit.isColimit (F ⋙ G))
+    assumption)
+
+end
+
 end CategoryTheory
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,14 +2,11 @@
 Copyright (c) 2020 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.limits.preserves.limits
-! leanprover-community/mathlib commit e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.Limits.Preserves.Basic
 
+#align_import category_theory.limits.preserves.limits from "leanprover-community/mathlib"@"e97cf15cd1aec9bd5c193b2ffac5a6dc9118912b"
+
 /-!
 # Isomorphisms about functors which preserve (co)limits
 
feat: more consistent use of ext, and updating porting notes. (#5242)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au>

Diff
@@ -89,7 +89,7 @@ def preservesLimitNatIso : lim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ lim :
   NatIso.ofComponents (fun F => preservesLimitIso G F)
     (by
       intro _ _ f
-      apply Limits.limit.hom_ext; intro j
+      apply limit.hom_ext; intro j
       dsimp
       simp only [preservesLimitsIso_hom_π, whiskerRight_app, limMap_π, Category.assoc,
         preservesLimitsIso_hom_π_assoc, ← G.map_comp])
@@ -147,7 +147,7 @@ def preservesColimitNatIso : colim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ c
     (by
       intro _ _ f
       rw [← Iso.inv_comp_eq, ← Category.assoc, ← Iso.eq_comp_inv]
-      apply Limits.colimit.hom_ext; intro j
+      apply colimit.hom_ext; intro j
       dsimp
       erw [ι_colimMap_assoc]
       simp only [ι_preservesColimitsIso_inv, whiskerRight_app, Category.assoc,
chore: tidy various files (#3530)
Diff
@@ -15,7 +15,7 @@ import Mathlib.CategoryTheory.Limits.Preserves.Basic
 
 If `G` preserves limits, and `C` and `D` have limits, then for any diagram `F : J ⥤ C` we have a
 canonical isomorphism `preservesLimitsIso : G.obj (Limit F) ≅ Limit (F ⋙ G)`.
-We also show that we can commute `IsLimit.lift` of a preserved limit with `functor.map_cone`:
+We also show that we can commute `IsLimit.lift` of a preserved limit with `Functor.mapCone`:
 `(PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂)`.
 
 The duals of these are also given. For functors which preserve (co)limits of specific shapes, see
chore: strip trailing spaces in lean files (#2828)

vscode is already configured by .vscode/settings.json to trim these on save. It's not clear how they've managed to stick around.

By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.

This was done with a regex search in vscode,

image

Diff
@@ -74,7 +74,7 @@ theorem preservesLimitsIso_inv_π (j) :
 
 @[reassoc (attr := simp)]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
-    G.map (limit.lift _ t) ≫ (preservesLimitIso G F).hom = 
+    G.map (limit.lift _ t) ≫ (preservesLimitIso G F).hom =
     limit.lift (F ⋙ G) (G.mapCone _) := by
   ext
   simp [← G.map_comp]
@@ -103,7 +103,7 @@ variable [PreservesColimit F G]
 
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
-    (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) := 
+    (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) :=
   ((PreservesColimit.preserves t).uniq (G.mapCocone _) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCocone
 
@@ -131,7 +131,7 @@ theorem ι_preservesColimitsIso_hom (j : J) :
 
 @[reassoc (attr := simp)]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
-    (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = 
+    (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) =
     colimit.desc _ (G.mapCocone t) := by
   ext
   simp [← G.map_comp]
@@ -158,4 +158,3 @@ def preservesColimitNatIso : colim ⋙ G ≅ (whiskeringRight J C D).obj G ⋙ c
 end
 
 end CategoryTheory
-
fix: use dot notation for mapCone/mapCocone (#2696)

Thanks to #2661 we have G.mapCone back. This swiches over globally.

Diff
@@ -47,8 +47,8 @@ variable [PreservesLimit F G]
 
 @[simp]
 theorem preserves_lift_mapCone (c₁ c₂ : Cone F) (t : IsLimit c₁) :
-    (PreservesLimit.preserves t).lift (Functor.mapCone G c₂) = G.map (t.lift c₂) :=
-  ((PreservesLimit.preserves t).uniq (Functor.mapCone G c₂) _ (by simp [← G.map_comp])).symm
+    (PreservesLimit.preserves t).lift (G.mapCone c₂) = G.map (t.lift c₂) :=
+  ((PreservesLimit.preserves t).uniq (G.mapCone c₂) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_lift_map_cone CategoryTheory.preserves_lift_mapCone
 
 variable [HasLimit F] [HasLimit (F ⋙ G)]
@@ -75,7 +75,7 @@ theorem preservesLimitsIso_inv_π (j) :
 @[reassoc (attr := simp)]
 theorem lift_comp_preservesLimitsIso_hom (t : Cone F) :
     G.map (limit.lift _ t) ≫ (preservesLimitIso G F).hom = 
-    limit.lift (F ⋙ G) (Functor.mapCone G _) := by
+    limit.lift (F ⋙ G) (G.mapCone _) := by
   ext
   simp [← G.map_comp]
 #align category_theory.lift_comp_preserves_limits_iso_hom CategoryTheory.lift_comp_preservesLimitsIso_hom
@@ -103,8 +103,8 @@ variable [PreservesColimit F G]
 
 @[simp]
 theorem preserves_desc_mapCocone (c₁ c₂ : Cocone F) (t : IsColimit c₁) :
-    (PreservesColimit.preserves t).desc (Functor.mapCocone G _) = G.map (t.desc c₂) := 
-  ((PreservesColimit.preserves t).uniq (Functor.mapCocone G _) _ (by simp [← G.map_comp])).symm
+    (PreservesColimit.preserves t).desc (G.mapCocone _) = G.map (t.desc c₂) := 
+  ((PreservesColimit.preserves t).uniq (G.mapCocone _) _ (by simp [← G.map_comp])).symm
 #align category_theory.preserves_desc_map_cocone CategoryTheory.preserves_desc_mapCocone
 
 variable [HasColimit F] [HasColimit (F ⋙ G)]
@@ -132,7 +132,7 @@ theorem ι_preservesColimitsIso_hom (j : J) :
 @[reassoc (attr := simp)]
 theorem preservesColimitsIso_inv_comp_desc (t : Cocone F) :
     (preservesColimitIso G F).inv ≫ G.map (colimit.desc _ t) = 
-    colimit.desc _ (Functor.mapCocone G t) := by
+    colimit.desc _ (G.mapCocone t) := by
   ext
   simp [← G.map_comp]
 #align category_theory.preserves_colimits_iso_inv_comp_desc CategoryTheory.preservesColimitsIso_inv_comp_desc
feat: port/CategoryTheory.Limits.Preserves.Limit (#2379)

Dependencies 74

75 files ported (100.0%)
26139 lines ported (100.0%)

All dependencies are ported!