category_theory.overMathlib.CategoryTheory.Comma.Over

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)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -233,7 +233,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
 end
 
 #print CategoryTheory.Over.forget_reflects_iso /-
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
+instance forget_reflects_iso : CategoryTheory.Functor.ReflectsIsomorphisms (forget X)
     where reflects Y Z f t :=
     ⟨⟨over.hom_mk (inv ((forget X).map f))
           ((as_iso ((forget X).map f)).inv_comp_eq.2 (over.w f).symm),
@@ -242,7 +242,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
 -/
 
 #print CategoryTheory.Over.forget_faithful /-
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : CategoryTheory.Functor.Faithful (forget X) where
 #align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
 -/
 
@@ -546,7 +546,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
 end
 
 #print CategoryTheory.Under.forget_reflects_iso /-
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
+instance forget_reflects_iso : CategoryTheory.Functor.ReflectsIsomorphisms (forget X)
     where reflects Y Z f t :=
     ⟨⟨under.hom_mk (inv ((under.forget X).map f)) ((is_iso.comp_inv_eq _).2 (under.w f).symm), by
         tidy⟩⟩
@@ -554,7 +554,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
 -/
 
 #print CategoryTheory.Under.forget_faithful /-
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : CategoryTheory.Functor.Faithful (forget X) where
 #align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
 -/
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
 -/
-import CategoryTheory.StructuredArrow
-import CategoryTheory.Punit
-import CategoryTheory.Functor.ReflectsIsomorphisms
+import CategoryTheory.Comma.StructuredArrow
+import CategoryTheory.PUnit
+import CategoryTheory.Functor.ReflectsIso
 import CategoryTheory.Functor.EpiMono
 
 #align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
 -/
-import Mathbin.CategoryTheory.StructuredArrow
-import Mathbin.CategoryTheory.Punit
-import Mathbin.CategoryTheory.Functor.ReflectsIsomorphisms
-import Mathbin.CategoryTheory.Functor.EpiMono
+import CategoryTheory.StructuredArrow
+import CategoryTheory.Punit
+import CategoryTheory.Functor.ReflectsIsomorphisms
+import CategoryTheory.Functor.EpiMono
 
 #align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.CategoryTheory.StructuredArrow
 import Mathbin.CategoryTheory.Punit
 import Mathbin.CategoryTheory.Functor.ReflectsIsomorphisms
 import Mathbin.CategoryTheory.Functor.EpiMono
 
+#align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
 /-!
 # Over and under categories
 
Diff
@@ -91,9 +91,11 @@ theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left
 #align category_theory.over.comp_left CategoryTheory.Over.comp_left
 -/
 
+#print CategoryTheory.Over.w /-
 @[simp, reassoc]
 theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
 #align category_theory.over.w CategoryTheory.Over.w
+-/
 
 #print CategoryTheory.Over.mk /-
 /-- To give an object in the over category, it suffices to give a morphism with codomain `X`. -/
@@ -103,29 +105,36 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
 #align category_theory.over.mk CategoryTheory.Over.mk
 -/
 
+#print CategoryTheory.Over.coeFromHom /-
 /-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
     be a global instance, but it is sometimes useful. -/
 def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
 #align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
+-/
 
 section
 
 attribute [local instance] coe_from_hom
 
+#print CategoryTheory.Over.coe_hom /-
 @[simp]
 theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
   rfl
 #align category_theory.over.coe_hom CategoryTheory.Over.coe_hom
+-/
 
 end
 
+#print CategoryTheory.Over.homMk /-
 /-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
     triangle. -/
 @[simps]
 def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by obviously) : U ⟶ V :=
   CostructuredArrow.homMk f w
 #align category_theory.over.hom_mk CategoryTheory.Over.homMk
+-/
 
+#print CategoryTheory.Over.isoMk /-
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
@@ -134,6 +143,7 @@ def isoMk {f g : Over X} (hl : f.left ≅ g.left) (hw : hl.Hom ≫ g.Hom = f.Hom
     f ≅ g :=
   CostructuredArrow.isoMk hl hw
 #align category_theory.over.iso_mk CategoryTheory.Over.isoMk
+-/
 
 section
 
@@ -151,15 +161,19 @@ def forget : Over X ⥤ T :=
 
 end
 
+#print CategoryTheory.Over.forget_obj /-
 @[simp]
 theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
   rfl
 #align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
+-/
 
+#print CategoryTheory.Over.forget_map /-
 @[simp]
 theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
   rfl
 #align category_theory.over.forget_map CategoryTheory.Over.forget_map
+-/
 
 #print CategoryTheory.Over.forgetCocone /-
 /-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
@@ -184,20 +198,26 @@ section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
 
+#print CategoryTheory.Over.map_obj_left /-
 @[simp]
 theorem map_obj_left : ((map f).obj U).left = U.left :=
   rfl
 #align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
+-/
 
+#print CategoryTheory.Over.map_obj_hom /-
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
   rfl
 #align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
+-/
 
+#print CategoryTheory.Over.map_map_left /-
 @[simp]
 theorem map_map_left : ((map f).map g).left = g.left :=
   rfl
 #align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
+-/
 
 #print CategoryTheory.Over.mapId /-
 /-- Mapping by the identity morphism is just the identity functor. -/
@@ -296,6 +316,7 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
 #align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
 -/
 
+#print CategoryTheory.Over.iteratedSliceEquiv /-
 /-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
 @[simps]
 def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -309,6 +330,7 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
     NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g => by ext; dsimp;
       simp
 #align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
+-/
 
 #print CategoryTheory.Over.iteratedSliceForward_forget /-
 theorem iteratedSliceForward_forget :
@@ -330,6 +352,7 @@ section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
+#print CategoryTheory.Over.post /-
 /-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
 @[simps]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -337,6 +360,7 @@ def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
   obj Y := mk <| F.map Y.Hom
   map Y₁ Y₂ f := Over.homMk (F.map f.left) (by tidy <;> erw [← F.map_comp, w])
 #align category_theory.over.post CategoryTheory.Over.post
+-/
 
 end
 
@@ -392,9 +416,11 @@ theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).rig
 #align category_theory.under.comp_right CategoryTheory.Under.comp_right
 -/
 
+#print CategoryTheory.Under.w /-
 @[simp, reassoc]
 theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
 #align category_theory.under.w CategoryTheory.Under.w
+-/
 
 #print CategoryTheory.Under.mk /-
 /-- To give an object in the under category, it suffices to give an arrow with domain `X`. -/
@@ -404,31 +430,39 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
 #align category_theory.under.mk CategoryTheory.Under.mk
 -/
 
+#print CategoryTheory.Under.homMk /-
 /-- To give a morphism in the under category, it suffices to give a morphism fitting in a
     commutative triangle. -/
 @[simps]
 def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom := by obviously) : U ⟶ V :=
   StructuredArrow.homMk f w
 #align category_theory.under.hom_mk CategoryTheory.Under.homMk
+-/
 
+#print CategoryTheory.Under.isoMk /-
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
 def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) : f ≅ g :=
   StructuredArrow.isoMk hr hw
 #align category_theory.under.iso_mk CategoryTheory.Under.isoMk
+-/
 
+#print CategoryTheory.Under.isoMk_hom_right /-
 @[simp]
 theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).Hom.right = hr.Hom :=
   rfl
 #align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
+-/
 
+#print CategoryTheory.Under.isoMk_inv_right /-
 @[simp]
 theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).inv.right = hr.inv :=
   rfl
 #align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_right
+-/
 
 section
 
@@ -443,15 +477,19 @@ def forget : Under X ⥤ T :=
 
 end
 
+#print CategoryTheory.Under.forget_obj /-
 @[simp]
 theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
   rfl
 #align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
+-/
 
+#print CategoryTheory.Under.forget_map /-
 @[simp]
 theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
   rfl
 #align category_theory.under.forget_map CategoryTheory.Under.forget_map
+-/
 
 #print CategoryTheory.Under.forgetCone /-
 /-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
@@ -473,20 +511,26 @@ section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
 
+#print CategoryTheory.Under.map_obj_right /-
 @[simp]
 theorem map_obj_right : ((map f).obj U).right = U.right :=
   rfl
 #align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
+-/
 
+#print CategoryTheory.Under.map_obj_hom /-
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
   rfl
 #align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
+-/
 
+#print CategoryTheory.Under.map_map_right /-
 @[simp]
 theorem map_map_right : ((map f).map g).right = g.right :=
   rfl
 #align category_theory.under.map_map_right CategoryTheory.Under.map_map_right
+-/
 
 #print CategoryTheory.Under.mapId /-
 /-- Mapping by the identity morphism is just the identity functor. -/
@@ -564,6 +608,7 @@ section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
+#print CategoryTheory.Under.post /-
 /-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
 @[simps]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
@@ -571,6 +616,7 @@ def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
   obj Y := mk <| F.map Y.Hom
   map Y₁ Y₂ f := Under.homMk (F.map f.right) (by tidy <;> erw [← F.map_comp, w])
 #align category_theory.under.post CategoryTheory.Under.post
+-/
 
 end
 
Diff
@@ -45,7 +45,8 @@ triangles.
 See <https://stacks.math.columbia.edu/tag/001G>.
 -/
 def Over (X : T) :=
-  CostructuredArrow (𝟭 T) X deriving Category
+  CostructuredArrow (𝟭 T) X
+deriving Category
 #align category_theory.over CategoryTheory.Over
 -/
 
@@ -345,7 +346,8 @@ end Over
 /-- The under category has as objects arrows with domain `X` and as morphisms commutative
     triangles. -/
 def Under (X : T) :=
-  StructuredArrow X (𝟭 T)deriving Category
+  StructuredArrow X (𝟭 T)
+deriving Category
 #align category_theory.under CategoryTheory.Under
 -/
 
Diff
@@ -90,12 +90,6 @@ theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left
 #align category_theory.over.comp_left CategoryTheory.Over.comp_left
 -/
 
-/- warning: category_theory.over.w -> CategoryTheory.Over.w is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
 @[simp, reassoc]
 theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
 #align category_theory.over.w CategoryTheory.Over.w
@@ -108,12 +102,6 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
 #align category_theory.over.mk CategoryTheory.Over.mk
 -/
 
-/- warning: category_theory.over.coe_from_hom -> CategoryTheory.Over.coeFromHom is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, Coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, CoeOut.{succ u1, max (succ u2) (succ u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHomₓ'. -/
 /-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
     be a global instance, but it is sometimes useful. -/
 def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
@@ -123,12 +111,6 @@ section
 
 attribute [local instance] coe_from_hom
 
-/- warning: category_theory.over.coe_hom -> CategoryTheory.Over.coe_hom is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)) f
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)) f
-Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_hom CategoryTheory.Over.coe_homₓ'. -/
 @[simp]
 theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
   rfl
@@ -136,9 +118,6 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
 
 end
 
-/- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
 /-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
     triangle. -/
 @[simps]
@@ -146,9 +125,6 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
   CostructuredArrow.homMk f w
 #align category_theory.over.hom_mk CategoryTheory.Over.homMk
 
-/- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
@@ -174,23 +150,11 @@ def forget : Over X ⥤ T :=
 
 end
 
-/- warning: category_theory.over.forget_obj -> CategoryTheory.Over.forget_obj is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_obj CategoryTheory.Over.forget_objₓ'. -/
 @[simp]
 theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
   rfl
 #align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
 
-/- warning: category_theory.over.forget_map -> CategoryTheory.Over.forget_map is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_map CategoryTheory.Over.forget_mapₓ'. -/
 @[simp]
 theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
   rfl
@@ -219,28 +183,16 @@ section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
 
-/- warning: category_theory.over.map_obj_left -> CategoryTheory.Over.map_obj_left is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_leftₓ'. -/
 @[simp]
 theorem map_obj_left : ((map f).obj U).left = U.left :=
   rfl
 #align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
 
-/- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
   rfl
 #align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
 
-/- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
 @[simp]
 theorem map_map_left : ((map f).map g).left = g.left :=
   rfl
@@ -343,12 +295,6 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
 #align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
 -/
 
-/- warning: category_theory.over.iterated_slice_equiv -> CategoryTheory.Over.iteratedSliceEquiv is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.Over.category.{u2, u1} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
-Case conversion may be inaccurate. Consider using '#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquivₓ'. -/
 /-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
 @[simps]
 def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -383,12 +329,6 @@ section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
-/- warning: category_theory.over.post -> CategoryTheory.Over.post is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.Over.category.{u3, u1} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Over.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
-but is expected to have type
-  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.over.post CategoryTheory.Over.postₓ'. -/
 /-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
 @[simps]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -450,12 +390,6 @@ theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).rig
 #align category_theory.under.comp_right CategoryTheory.Under.comp_right
 -/
 
-/- warning: category_theory.under.w -> CategoryTheory.Under.w is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
 @[simp, reassoc]
 theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
 #align category_theory.under.w CategoryTheory.Under.w
@@ -468,9 +402,6 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
 #align category_theory.under.mk CategoryTheory.Under.mk
 -/
 
-/- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
 /-- To give a morphism in the under category, it suffices to give a morphism fitting in a
     commutative triangle. -/
 @[simps]
@@ -478,9 +409,6 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
   StructuredArrow.homMk f w
 #align category_theory.under.hom_mk CategoryTheory.Under.homMk
 
-/- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
@@ -488,18 +416,12 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
   StructuredArrow.isoMk hr hw
 #align category_theory.under.iso_mk CategoryTheory.Under.isoMk
 
-/- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
 @[simp]
 theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).Hom.right = hr.Hom :=
   rfl
 #align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
 
-/- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
 @[simp]
 theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).inv.right = hr.inv :=
@@ -519,23 +441,11 @@ def forget : Under X ⥤ T :=
 
 end
 
-/- warning: category_theory.under.forget_obj -> CategoryTheory.Under.forget_obj is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_obj CategoryTheory.Under.forget_objₓ'. -/
 @[simp]
 theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
   rfl
 #align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
 
-/- warning: category_theory.under.forget_map -> CategoryTheory.Under.forget_map is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_map CategoryTheory.Under.forget_mapₓ'. -/
 @[simp]
 theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
   rfl
@@ -561,28 +471,16 @@ section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
 
-/- warning: category_theory.under.map_obj_right -> CategoryTheory.Under.map_obj_right is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_rightₓ'. -/
 @[simp]
 theorem map_obj_right : ((map f).obj U).right = U.right :=
   rfl
 #align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
 
-/- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
   rfl
 #align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
 
-/- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
 @[simp]
 theorem map_map_right : ((map f).map g).right = g.right :=
   rfl
@@ -664,12 +562,6 @@ section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
-/- warning: category_theory.under.post -> CategoryTheory.Under.post is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.Under.category.{u3, u1} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Under.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
-but is expected to have type
-  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u3} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryUnder.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.under.post CategoryTheory.Under.postₓ'. -/
 /-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
 @[simps]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
Diff
@@ -311,11 +311,7 @@ The converse of `category_theory.over.mono_of_mono_left`.
 instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :=
   by
   refine' ⟨fun (Y : T) l m a => _⟩
-  let l' : mk (m ≫ f.hom) ⟶ f :=
-    hom_mk l
-      (by
-        dsimp
-        rw [← over.w k, reassoc_of a])
+  let l' : mk (m ≫ f.hom) ⟶ f := hom_mk l (by dsimp; rw [← over.w k, reassoc_of a])
   suffices l' = hom_mk m by apply congr_arg comma_morphism.left this
   rw [← cancel_mono k]
   ext
@@ -333,12 +329,7 @@ variable (f : Over X)
 def iteratedSliceForward : Over f ⥤ Over f.left
     where
   obj α := Over.mk α.Hom.left
-  map α β κ :=
-    Over.homMk κ.left.left
-      (by
-        rw [autoParam_eq]
-        rw [← over.w κ]
-        rfl)
+  map α β κ := Over.homMk κ.left.left (by rw [autoParam_eq]; rw [← over.w κ]; rfl)
 #align category_theory.over.iterated_slice_forward CategoryTheory.Over.iteratedSliceForward
 -/
 
@@ -366,15 +357,9 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
   inverse := iteratedSliceBackward f
   unitIso :=
     NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _) (by tidy)) (by tidy))
-      fun X Y g => by
-      ext
-      dsimp
-      simp
+      fun X Y g => by ext; dsimp; simp
   counitIso :=
-    NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g =>
-      by
-      ext
-      dsimp
+    NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g => by ext; dsimp;
       simp
 #align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
 
@@ -667,10 +652,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
   by
   refine' ⟨fun (Y : T) l m a => _⟩
   let l' : g ⟶ mk (g.hom ≫ m) :=
-    hom_mk l
-      (by
-        dsimp
-        rw [← under.w k, category.assoc, a, category.assoc])
+    hom_mk l (by dsimp; rw [← under.w k, category.assoc, a, category.assoc])
   suffices l' = hom_mk m by apply congr_arg comma_morphism.right this
   rw [← cancel_epi k]
   ext
Diff
@@ -137,10 +137,7 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
 end
 
 /- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.458) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
 /-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
     triangle. -/
@@ -150,10 +147,7 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
 #align category_theory.over.hom_mk CategoryTheory.Over.homMk
 
 /- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.528) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
@@ -237,10 +231,7 @@ theorem map_obj_left : ((map f).obj U).left = U.left :=
 #align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
 
 /- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) Y (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
@@ -248,10 +239,7 @@ theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
 #align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
 
 /- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
 @[simp]
 theorem map_map_left : ((map f).map g).left = g.left :=
@@ -496,10 +484,7 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
 -/
 
 /- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2699) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
 /-- To give a morphism in the under category, it suffices to give a morphism fitting in a
     commutative triangle. -/
@@ -509,10 +494,7 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
 #align category_theory.under.hom_mk CategoryTheory.Under.homMk
 
 /- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
@@ -522,10 +504,7 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
 #align category_theory.under.iso_mk CategoryTheory.Under.isoMk
 
 /- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
 @[simp]
 theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
@@ -534,10 +513,7 @@ theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom 
 #align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
 
 /- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
 @[simp]
 theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
@@ -612,10 +588,7 @@ theorem map_obj_right : ((map f).obj U).right = U.right :=
 #align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
 
 /- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) X Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
@@ -623,10 +596,7 @@ theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
 #align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
 
 /- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
-lean 3 declaration is
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.category.{u2, u1} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
-but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
 @[simp]
 theorem map_map_right : ((map f).map g).right = g.right :=
Diff
@@ -96,7 +96,7 @@ lean 3 declaration is
 but is expected to have type
   forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
 Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
 #align category_theory.over.w CategoryTheory.Over.w
 
@@ -483,7 +483,7 @@ lean 3 declaration is
 but is expected to have type
   forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
 Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
 theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
 #align category_theory.under.w CategoryTheory.Under.w
 
Diff
@@ -140,7 +140,7 @@ end
 lean 3 declaration is
   forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
 but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.455) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.458) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
 Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
 /-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
     triangle. -/
@@ -153,7 +153,7 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
 lean 3 declaration is
   forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
 but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.525) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.528) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
 Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
@@ -499,7 +499,7 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
 lean 3 declaration is
   forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
 but is expected to have type
-  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2636) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2699) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
 Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
 /-- To give a morphism in the under category, it suffices to give a morphism fitting in a
     commutative triangle. -/
Diff
@@ -108,12 +108,16 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
 #align category_theory.over.mk CategoryTheory.Over.mk
 -/
 
-#print CategoryTheory.Over.coeFromHom /-
+/- warning: category_theory.over.coe_from_hom -> CategoryTheory.Over.coeFromHom is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, Coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, CoeOut.{succ u1, max (succ u2) (succ u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHomₓ'. -/
 /-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
     be a global instance, but it is sometimes useful. -/
 def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
 #align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
--/
 
 section
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.CategoryTheory.Functor.EpiMono
 /-!
 # Over and under categories
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Over (and under) categories are special cases of comma categories.
 * If `L` is the identity functor and `R` is a constant functor, then `comma L R` is the "slice" or
   "over" category over the object `R` maps to.
Diff
@@ -35,6 +35,7 @@ universe v₁ v₂ u₁ u₂
 -- morphism levels before object levels. See note [category_theory universes].
 variable {T : Type u₁} [Category.{v₁} T]
 
+#print CategoryTheory.Over /-
 /-- The over category has as objects arrows in `T` with codomain `X` and as morphisms commutative
 triangles.
 
@@ -43,7 +44,9 @@ See <https://stacks.math.columbia.edu/tag/001G>.
 def Over (X : T) :=
   CostructuredArrow (𝟭 T) X deriving Category
 #align category_theory.over CategoryTheory.Over
+-/
 
+#print CategoryTheory.Over.inhabited /-
 -- Satisfying the inhabited linter
 instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
     where default :=
@@ -51,49 +54,74 @@ instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
       right := default
       Hom := 𝟙 _ }
 #align category_theory.over.inhabited CategoryTheory.Over.inhabited
+-/
 
 namespace Over
 
 variable {X : T}
 
+#print CategoryTheory.Over.OverMorphism.ext /-
 @[ext]
 theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.left) : f = g := by
   tidy
 #align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
+-/
 
+#print CategoryTheory.Over.over_right /-
 @[simp]
 theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by tidy
 #align category_theory.over.over_right CategoryTheory.Over.over_right
+-/
 
+#print CategoryTheory.Over.id_left /-
 @[simp]
 theorem id_left (U : Over X) : CommaMorphism.left (𝟙 U) = 𝟙 U.left :=
   rfl
 #align category_theory.over.id_left CategoryTheory.Over.id_left
+-/
 
+#print CategoryTheory.Over.comp_left /-
 @[simp]
 theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left = f.left ≫ g.left :=
   rfl
 #align category_theory.over.comp_left CategoryTheory.Over.comp_left
+-/
 
+/- warning: category_theory.over.w -> CategoryTheory.Over.w is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
 @[simp, reassoc.1]
 theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
 #align category_theory.over.w CategoryTheory.Over.w
 
+#print CategoryTheory.Over.mk /-
 /-- To give an object in the over category, it suffices to give a morphism with codomain `X`. -/
 @[simps left Hom]
 def mk {X Y : T} (f : Y ⟶ X) : Over X :=
   CostructuredArrow.mk f
 #align category_theory.over.mk CategoryTheory.Over.mk
+-/
 
+#print CategoryTheory.Over.coeFromHom /-
 /-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
     be a global instance, but it is sometimes useful. -/
 def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
 #align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
+-/
 
 section
 
 attribute [local instance] coe_from_hom
 
+/- warning: category_theory.over.coe_hom -> CategoryTheory.Over.coe_hom is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)) f
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)) f
+Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_hom CategoryTheory.Over.coe_homₓ'. -/
 @[simp]
 theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
   rfl
@@ -101,6 +129,12 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
 
 end
 
+/- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.455) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
 /-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
     triangle. -/
 @[simps]
@@ -108,6 +142,12 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
   CostructuredArrow.homMk f w
 #align category_theory.over.hom_mk CategoryTheory.Over.homMk
 
+/- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.525) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
@@ -121,6 +161,7 @@ section
 
 variable (X)
 
+#print CategoryTheory.Over.forget /-
 /-- The forgetful functor mapping an arrow to its domain.
 
 See <https://stacks.math.columbia.edu/tag/001G>.
@@ -128,26 +169,42 @@ See <https://stacks.math.columbia.edu/tag/001G>.
 def forget : Over X ⥤ T :=
   Comma.fst _ _
 #align category_theory.over.forget CategoryTheory.Over.forget
+-/
 
 end
 
+/- warning: category_theory.over.forget_obj -> CategoryTheory.Over.forget_obj is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_obj CategoryTheory.Over.forget_objₓ'. -/
 @[simp]
 theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
   rfl
 #align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
 
+/- warning: category_theory.over.forget_map -> CategoryTheory.Over.forget_map is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_map CategoryTheory.Over.forget_mapₓ'. -/
 @[simp]
 theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
   rfl
 #align category_theory.over.forget_map CategoryTheory.Over.forget_map
 
+#print CategoryTheory.Over.forgetCocone /-
 /-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
 @[simps]
 def forgetCocone (X : T) : Limits.Cocone (forget X) :=
   { pt
     ι := { app := Comma.hom } }
 #align category_theory.over.forget_cocone CategoryTheory.Over.forgetCocone
+-/
 
+#print CategoryTheory.Over.map /-
 /-- A morphism `f : X ⟶ Y` induces a functor `over X ⥤ over Y` in the obvious way.
 
 See <https://stacks.math.columbia.edu/tag/001G>.
@@ -155,48 +212,76 @@ See <https://stacks.math.columbia.edu/tag/001G>.
 def map {Y : T} (f : X ⟶ Y) : Over X ⥤ Over Y :=
   Comma.mapRight _ <| Discrete.natTrans fun _ => f
 #align category_theory.over.map CategoryTheory.Over.map
+-/
 
 section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
 
+/- warning: category_theory.over.map_obj_left -> CategoryTheory.Over.map_obj_left is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_leftₓ'. -/
 @[simp]
 theorem map_obj_left : ((map f).obj U).left = U.left :=
   rfl
 #align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
 
+/- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) Y (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
   rfl
 #align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
 
+/- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
 @[simp]
 theorem map_map_left : ((map f).map g).left = g.left :=
   rfl
 #align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
 
+#print CategoryTheory.Over.mapId /-
 /-- Mapping by the identity morphism is just the identity functor. -/
 def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
   NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
 #align category_theory.over.map_id CategoryTheory.Over.mapId
+-/
 
+#print CategoryTheory.Over.mapComp /-
 /-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
 def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙ map g :=
   NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
 #align category_theory.over.map_comp CategoryTheory.Over.mapComp
+-/
 
 end
 
+#print CategoryTheory.Over.forget_reflects_iso /-
 instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
     where reflects Y Z f t :=
     ⟨⟨over.hom_mk (inv ((forget X).map f))
           ((as_iso ((forget X).map f)).inv_comp_eq.2 (over.w f).symm),
         by tidy⟩⟩
 #align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
+-/
 
+#print CategoryTheory.Over.forget_faithful /-
 instance forget_faithful : Faithful (forget X) where
 #align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
+-/
 
+#print CategoryTheory.Over.epi_of_epi_left /-
 -- TODO: Show the converse holds if `T` has binary products.
 /--
 If `k.left` is an epimorphism, then `k` is an epimorphism. In other words, `over.forget X` reflects
@@ -207,7 +292,9 @@ The converse does not hold without additional assumptions on the underlying cate
 theorem epi_of_epi_left {f g : Over X} (k : f ⟶ g) [hk : Epi k.left] : Epi k :=
   (forget X).epi_of_epi_map hk
 #align category_theory.over.epi_of_epi_left CategoryTheory.Over.epi_of_epi_left
+-/
 
+#print CategoryTheory.Over.mono_of_mono_left /-
 /--
 If `k.left` is a monomorphism, then `k` is a monomorphism. In other words, `over.forget X` reflects
 monomorphisms.
@@ -218,7 +305,9 @@ This lemma is not an instance, to avoid loops in type class inference.
 theorem mono_of_mono_left {f g : Over X} (k : f ⟶ g) [hk : Mono k.left] : Mono k :=
   (forget X).mono_of_mono_map hk
 #align category_theory.over.mono_of_mono_left CategoryTheory.Over.mono_of_mono_left
+-/
 
+#print CategoryTheory.Over.mono_left_of_mono /-
 /--
 If `k` is a monomorphism, then `k.left` is a monomorphism. In other words, `over.forget X` preserves
 monomorphisms.
@@ -237,11 +326,13 @@ instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :
   ext
   apply a
 #align category_theory.over.mono_left_of_mono CategoryTheory.Over.mono_left_of_mono
+-/
 
 section IteratedSlice
 
 variable (f : Over X)
 
+#print CategoryTheory.Over.iteratedSliceForward /-
 /-- Given f : Y ⟶ X, this is the obvious functor from (T/X)/f to T/Y -/
 @[simps]
 def iteratedSliceForward : Over f ⥤ Over f.left
@@ -254,7 +345,9 @@ def iteratedSliceForward : Over f ⥤ Over f.left
         rw [← over.w κ]
         rfl)
 #align category_theory.over.iterated_slice_forward CategoryTheory.Over.iteratedSliceForward
+-/
 
+#print CategoryTheory.Over.iteratedSliceBackward /-
 /-- Given f : Y ⟶ X, this is the obvious functor from T/Y to (T/X)/f -/
 @[simps]
 def iteratedSliceBackward : Over f.left ⥤ Over f
@@ -262,7 +355,14 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
   obj g := mk (homMk g.Hom : mk (g.Hom ≫ f.Hom) ⟶ f)
   map g h α := homMk (homMk α.left (w_assoc α f.Hom)) (OverMorphism.ext (w α))
 #align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
+-/
 
+/- warning: category_theory.over.iterated_slice_equiv -> CategoryTheory.Over.iteratedSliceEquiv is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.Over.category.{u2, u1} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
+Case conversion may be inaccurate. Consider using '#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquivₓ'. -/
 /-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
 @[simps]
 def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -283,15 +383,19 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
       simp
 #align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
 
+#print CategoryTheory.Over.iteratedSliceForward_forget /-
 theorem iteratedSliceForward_forget :
     iteratedSliceForward f ⋙ forget f.left = forget f ⋙ forget X :=
   rfl
 #align category_theory.over.iterated_slice_forward_forget CategoryTheory.Over.iteratedSliceForward_forget
+-/
 
+#print CategoryTheory.Over.iteratedSliceBackward_forget_forget /-
 theorem iteratedSliceBackward_forget_forget :
     iteratedSliceBackward f ⋙ forget f ⋙ forget X = forget f.left :=
   rfl
 #align category_theory.over.iterated_slice_backward_forget_forget CategoryTheory.Over.iteratedSliceBackward_forget_forget
+-/
 
 end IteratedSlice
 
@@ -299,6 +403,12 @@ section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
+/- warning: category_theory.over.post -> CategoryTheory.Over.post is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.Over.category.{u3, u1} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Over.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
+but is expected to have type
+  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.over.post CategoryTheory.Over.postₓ'. -/
 /-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
 @[simps]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -311,12 +421,15 @@ end
 
 end Over
 
+#print CategoryTheory.Under /-
 /-- The under category has as objects arrows with domain `X` and as morphisms commutative
     triangles. -/
 def Under (X : T) :=
   StructuredArrow X (𝟭 T)deriving Category
 #align category_theory.under CategoryTheory.Under
+-/
 
+#print CategoryTheory.Under.inhabited /-
 -- Satisfying the inhabited linter
 instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
     where default :=
@@ -324,40 +437,63 @@ instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
       right := default
       Hom := 𝟙 _ }
 #align category_theory.under.inhabited CategoryTheory.Under.inhabited
+-/
 
 namespace Under
 
 variable {X : T}
 
+#print CategoryTheory.Under.UnderMorphism.ext /-
 @[ext]
 theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
   by tidy
 #align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
+-/
 
+#print CategoryTheory.Under.under_left /-
 @[simp]
 theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by tidy
 #align category_theory.under.under_left CategoryTheory.Under.under_left
+-/
 
+#print CategoryTheory.Under.id_right /-
 @[simp]
 theorem id_right (U : Under X) : CommaMorphism.right (𝟙 U) = 𝟙 U.right :=
   rfl
 #align category_theory.under.id_right CategoryTheory.Under.id_right
+-/
 
+#print CategoryTheory.Under.comp_right /-
 @[simp]
 theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).right = f.right ≫ g.right :=
   rfl
 #align category_theory.under.comp_right CategoryTheory.Under.comp_right
+-/
 
+/- warning: category_theory.under.w -> CategoryTheory.Under.w is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
 @[simp, reassoc.1]
 theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
 #align category_theory.under.w CategoryTheory.Under.w
 
+#print CategoryTheory.Under.mk /-
 /-- To give an object in the under category, it suffices to give an arrow with domain `X`. -/
 @[simps right Hom]
 def mk {X Y : T} (f : X ⟶ Y) : Under X :=
   StructuredArrow.mk f
 #align category_theory.under.mk CategoryTheory.Under.mk
+-/
 
+/- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2636) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
 /-- To give a morphism in the under category, it suffices to give a morphism fitting in a
     commutative triangle. -/
 @[simps]
@@ -365,6 +501,12 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
   StructuredArrow.homMk f w
 #align category_theory.under.hom_mk CategoryTheory.Under.homMk
 
+/- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
@@ -372,12 +514,24 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
   StructuredArrow.isoMk hr hw
 #align category_theory.under.iso_mk CategoryTheory.Under.isoMk
 
+/- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
 @[simp]
 theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).Hom.right = hr.Hom :=
   rfl
 #align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
 
+/- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
 @[simp]
 theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
     (isoMk hr hw).inv.right = hr.inv :=
@@ -388,75 +542,120 @@ section
 
 variable (X)
 
+#print CategoryTheory.Under.forget /-
 /-- The forgetful functor mapping an arrow to its domain. -/
 def forget : Under X ⥤ T :=
   Comma.snd _ _
 #align category_theory.under.forget CategoryTheory.Under.forget
+-/
 
 end
 
+/- warning: category_theory.under.forget_obj -> CategoryTheory.Under.forget_obj is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_obj CategoryTheory.Under.forget_objₓ'. -/
 @[simp]
 theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
   rfl
 #align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
 
+/- warning: category_theory.under.forget_map -> CategoryTheory.Under.forget_map is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_map CategoryTheory.Under.forget_mapₓ'. -/
 @[simp]
 theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
   rfl
 #align category_theory.under.forget_map CategoryTheory.Under.forget_map
 
+#print CategoryTheory.Under.forgetCone /-
 /-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
 @[simps]
 def forgetCone (X : T) : Limits.Cone (forget X) :=
   { pt
     π := { app := Comma.hom } }
 #align category_theory.under.forget_cone CategoryTheory.Under.forgetCone
+-/
 
+#print CategoryTheory.Under.map /-
 /-- A morphism `X ⟶ Y` induces a functor `under Y ⥤ under X` in the obvious way. -/
 def map {Y : T} (f : X ⟶ Y) : Under Y ⥤ Under X :=
   Comma.mapLeft _ <| Discrete.natTrans fun _ => f
 #align category_theory.under.map CategoryTheory.Under.map
+-/
 
 section
 
 variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
 
+/- warning: category_theory.under.map_obj_right -> CategoryTheory.Under.map_obj_right is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_rightₓ'. -/
 @[simp]
 theorem map_obj_right : ((map f).obj U).right = U.right :=
   rfl
 #align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
 
+/- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) X Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
 @[simp]
 theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
   rfl
 #align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
 
+/- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.category.{u2, u1} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+but is expected to have type
+  forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
 @[simp]
 theorem map_map_right : ((map f).map g).right = g.right :=
   rfl
 #align category_theory.under.map_map_right CategoryTheory.Under.map_map_right
 
+#print CategoryTheory.Under.mapId /-
 /-- Mapping by the identity morphism is just the identity functor. -/
 def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
   NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
 #align category_theory.under.map_id CategoryTheory.Under.mapId
+-/
 
+#print CategoryTheory.Under.mapComp /-
 /-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
 def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙ map f :=
   NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
 #align category_theory.under.map_comp CategoryTheory.Under.mapComp
+-/
 
 end
 
+#print CategoryTheory.Under.forget_reflects_iso /-
 instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
     where reflects Y Z f t :=
     ⟨⟨under.hom_mk (inv ((under.forget X).map f)) ((is_iso.comp_inv_eq _).2 (under.w f).symm), by
         tidy⟩⟩
 #align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
+-/
 
+#print CategoryTheory.Under.forget_faithful /-
 instance forget_faithful : Faithful (forget X) where
 #align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
+-/
 
+#print CategoryTheory.Under.mono_of_mono_right /-
 -- TODO: Show the converse holds if `T` has binary coproducts.
 /-- If `k.right` is a monomorphism, then `k` is a monomorphism. In other words, `under.forget X`
 reflects epimorphisms.
@@ -466,7 +665,9 @@ The converse does not hold without additional assumptions on the underlying cate
 theorem mono_of_mono_right {f g : Under X} (k : f ⟶ g) [hk : Mono k.right] : Mono k :=
   (forget X).mono_of_mono_map hk
 #align category_theory.under.mono_of_mono_right CategoryTheory.Under.mono_of_mono_right
+-/
 
+#print CategoryTheory.Under.epi_of_epi_right /-
 /--
 If `k.right` is a epimorphism, then `k` is a epimorphism. In other words, `under.forget X` reflects
 epimorphisms.
@@ -477,7 +678,9 @@ This lemma is not an instance, to avoid loops in type class inference.
 theorem epi_of_epi_right {f g : Under X} (k : f ⟶ g) [hk : Epi k.right] : Epi k :=
   (forget X).epi_of_epi_map hk
 #align category_theory.under.epi_of_epi_right CategoryTheory.Under.epi_of_epi_right
+-/
 
+#print CategoryTheory.Under.epi_right_of_epi /-
 /--
 If `k` is a epimorphism, then `k.right` is a epimorphism. In other words, `under.forget X` preserves
 epimorphisms.
@@ -496,11 +699,18 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
   ext
   apply a
 #align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
+-/
 
 section
 
 variable {D : Type u₂} [Category.{v₂} D]
 
+/- warning: category_theory.under.post -> CategoryTheory.Under.post is a dubious translation:
+lean 3 declaration is
+  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.Under.category.{u3, u1} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Under.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
+but is expected to have type
+  forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u3} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryUnder.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.under.post CategoryTheory.Under.postₓ'. -/
 /-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
 @[simps]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
Diff
@@ -144,7 +144,7 @@ theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
 /-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
 @[simps]
 def forgetCocone (X : T) : Limits.Cocone (forget X) :=
-  { x
+  { pt
     ι := { app := Comma.hom } }
 #align category_theory.over.forget_cocone CategoryTheory.Over.forgetCocone
 
@@ -408,7 +408,7 @@ theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
 /-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
 @[simps]
 def forgetCone (X : T) : Limits.Cone (forget X) :=
-  { x
+  { pt
     π := { app := Comma.hom } }
 #align category_theory.under.forget_cone CategoryTheory.Under.forgetCone
 
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
 
 ! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 3e0dd193514c9380edc69f1da92e80c02713c41d
+! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -48,6 +48,7 @@ def Over (X : T) :=
 instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
     where default :=
     { left := default
+      right := default
       Hom := 𝟙 _ }
 #align category_theory.over.inhabited CategoryTheory.Over.inhabited
 
@@ -303,9 +304,7 @@ variable {D : Type u₂} [Category.{v₂} D]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
     where
   obj Y := mk <| F.map Y.Hom
-  map Y₁ Y₂ f :=
-    { left := F.map f.left
-      w' := by tidy <;> erw [← F.map_comp, w] }
+  map Y₁ Y₂ f := Over.homMk (F.map f.left) (by tidy <;> erw [← F.map_comp, w])
 #align category_theory.over.post CategoryTheory.Over.post
 
 end
@@ -321,7 +320,8 @@ def Under (X : T) :=
 -- Satisfying the inhabited linter
 instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
     where default :=
-    { right := default
+    { left := default
+      right := default
       Hom := 𝟙 _ }
 #align category_theory.under.inhabited CategoryTheory.Under.inhabited
 
@@ -506,9 +506,7 @@ variable {D : Type u₂} [Category.{v₂} D]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
     where
   obj Y := mk <| F.map Y.Hom
-  map Y₁ Y₂ f :=
-    { right := F.map f.right
-      w' := by tidy <;> erw [← F.map_comp, w] }
+  map Y₁ Y₂ f := Under.homMk (F.map f.right) (by tidy <;> erw [← F.map_comp, w])
 #align category_theory.under.post CategoryTheory.Under.post
 
 end

Changes in mathlib4

mathlib3
mathlib4
chore(CategoryTheory): make Functor.Full a Prop (#12449)

Before this PR, Functor.Full contained the data of the preimage of maps by a full functor F. This PR makes Functor.Full a proposition. This is to prevent any diamond to appear.

The lemma Functor.image_preimage is also renamed Functor.map_preimage.

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -207,7 +207,7 @@ instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
 #align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
 
 /-- The identity over `X` is terminal. -/
-def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
+noncomputable def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
   CostructuredArrow.mkIdTerminal
 
 instance forget_faithful : (forget X).Faithful where
@@ -490,7 +490,7 @@ instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
 #align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
 
 /-- The identity under `X` is initial. -/
-def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
+noncomputable def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
   StructuredArrow.mkIdInitial
 
 instance forget_faithful : (forget X).Faithful where
chore(CategoryTheory): move Full, Faithful, EssSurj, IsEquivalence and ReflectsIsomorphisms to the Functor namespace (#11985)

These notions on functors are now Functor.Full, Functor.Faithful, Functor.EssSurj, Functor.IsEquivalence, Functor.ReflectsIsomorphisms. Deprecated aliases are introduced for the previous names.

Diff
@@ -197,7 +197,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
 
 end
 
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
   reflects {Y Z} f t := by
     let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
       ((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
@@ -210,7 +210,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
 def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
   CostructuredArrow.mkIdTerminal
 
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : (forget X).Faithful where
 #align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
 
 -- TODO: Show the converse holds if `T` has binary products.
@@ -319,18 +319,18 @@ variable {D : Type u₂} [Category.{v₂} D]
 def toOver (F : D ⥤ T) (X : T) : CostructuredArrow F X ⥤ Over X :=
   CostructuredArrow.pre F (𝟭 T) X
 
-instance (F : D ⥤ T) (X : T) [Faithful F] : Faithful (toOver F X) :=
-  show Faithful (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.Faithful] : (toOver F X).Faithful :=
+  show (CostructuredArrow.pre _ _ _).Faithful from inferInstance
 
-instance (F : D ⥤ T) (X : T) [Full F] : Full (toOver F X) :=
-  show Full (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.Full] : (toOver F X).Full :=
+  show (CostructuredArrow.pre _ _ _).Full from inferInstance
 
-instance (F : D ⥤ T) (X : T) [EssSurj F] : EssSurj (toOver F X) :=
-  show EssSurj (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.EssSurj] : (toOver F X).EssSurj :=
+  show (CostructuredArrow.pre _ _ _).EssSurj from inferInstance
 
 /-- An equivalence `F` induces an equivalence `CostructuredArrow F X ≌ Over X`. -/
-noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [IsEquivalence F] :
-    IsEquivalence (toOver F X) :=
+noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [F.IsEquivalence] :
+    (toOver F X).IsEquivalence :=
   CostructuredArrow.isEquivalencePre _ _ _
 
 end CostructuredArrow
@@ -480,7 +480,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
 
 end
 
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
   reflects {Y Z} f t := by
     let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
       ((IsIso.comp_inv_eq _).2 (Under.w f).symm)
@@ -493,7 +493,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
 def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
   StructuredArrow.mkIdInitial
 
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : (forget X).Faithful where
 #align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
 
 -- TODO: Show the converse holds if `T` has binary coproducts.
@@ -557,18 +557,18 @@ variable {D : Type u₂} [Category.{v₂} D]
 def toUnder (X : T) (F : D ⥤ T) : StructuredArrow X F ⥤ Under X :=
   StructuredArrow.pre X F (𝟭 T)
 
-instance (X : T) (F : D ⥤ T) [Faithful F] : Faithful (toUnder X F) :=
-  show Faithful (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.Faithful] : (toUnder X F).Faithful :=
+  show (StructuredArrow.pre _ _ _).Faithful from inferInstance
 
-instance (X : T) (F : D ⥤ T) [Full F] : Full (toUnder X F) :=
-  show Full (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.Full] : (toUnder X F).Full :=
+  show (StructuredArrow.pre _ _ _).Full from inferInstance
 
-instance (X : T) (F : D ⥤ T) [EssSurj F] : EssSurj (toUnder X F) :=
-  show EssSurj (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.EssSurj] : (toUnder X F).EssSurj :=
+  show (StructuredArrow.pre _ _ _).EssSurj from inferInstance
 
 /-- An equivalence `F` induces an equivalence `StructuredArrow X F ≌ Under X`. -/
-noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
-    IsEquivalence (toUnder X F) :=
+noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [F.IsEquivalence] :
+    (toUnder X F).IsEquivalence :=
   StructuredArrow.isEquivalencePre _ _ _
 
 end StructuredArrow
chore: prepare Lean version bump with explicit simp (#10999)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -203,7 +203,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
       ((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
-    repeat (ext; simp)
+    repeat (ext; simp [g])
 #align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
 
 /-- The identity over `X` is terminal. -/
@@ -486,7 +486,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
       ((IsIso.comp_inv_eq _).2 (Under.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
-    repeat (ext; simp)
+    repeat (ext; simp [g])
 #align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
 
 /-- The identity under `X` is initial. -/
chore: classify simp can do this porting notes (#10619)

Classify by adding issue number (#10618) to porting notes claiming anything semantically equivalent to simp can prove this or simp can simplify this.

Diff
@@ -63,7 +63,7 @@ theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.
   simp only [eq_iff_true_of_subsingleton]
 #align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
 
--- @[simp] : Porting note : simp can prove this
+-- @[simp] : Porting note (#10618): simp can prove this
 theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only
 #align category_theory.over.over_right CategoryTheory.Over.over_right
 
@@ -362,7 +362,7 @@ theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right =
   congr; simp only [eq_iff_true_of_subsingleton]
 #align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
 
--- @[simp] Porting note: simp can prove this
+-- @[simp] Porting note (#10618): simp can prove this
 theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only
 #align category_theory.under.under_left CategoryTheory.Under.under_left
 
refactor: create folder CategoryTheory/Comma (#10108)
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
 -/
-import Mathlib.CategoryTheory.StructuredArrow
+import Mathlib.CategoryTheory.Comma.StructuredArrow
 import Mathlib.CategoryTheory.PUnit
 import Mathlib.CategoryTheory.Functor.ReflectsIso
 import Mathlib.CategoryTheory.Functor.EpiMono
chore: space after (#8178)

Co-authored-by: Moritz Firsching <firsching@google.com>

Diff
@@ -243,7 +243,7 @@ The converse of `CategoryTheory.Over.mono_of_mono_left`.
 instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left := by
   refine' ⟨fun { Y : T } l m a => _⟩
   let l' : mk (m ≫ f.hom) ⟶ f := homMk l (by
-        dsimp; rw [← Over.w k, ←Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
+        dsimp; rw [← Over.w k, ← Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
   suffices l' = (homMk m : mk (m ≫ f.hom) ⟶ f) by apply congrArg CommaMorphism.left this
   rw [← cancel_mono k]
   ext
feat(CategoryTheory/Sites): internal hom of (pre)sheaves (#8622)

In this PR, we define a presheaf presheafHom F G when F and G are presheaves Cᵒᵖ ⥤ A and show that it is a sheaf when G is a sheaf (for a certain Grothendieck topology on C).

Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>

Diff
@@ -183,6 +183,8 @@ theorem map_map_left : ((map f).map g).left = g.left :=
   rfl
 #align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
 
+variable (Y)
+
 /-- Mapping by the identity morphism is just the identity functor. -/
 def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
   NatIso.ofComponents fun X => isoMk (Iso.refl _)
refactor: purge aesop_cat_nonterminal (#7505)

aesop_cat_nonterminal is a non-terminal variant of aesop. It's not supposed to be used in production code since it's even worse than non-terminal simp. However, there were a few occurrences left (presumably from the port), which this PR removes.

The only nontrivial change is that I add mathlib's rfl tactic to the CategoryTheory Aesop rule set.

Diff
@@ -299,7 +299,8 @@ variable {D : Type u₂} [Category.{v₂} D]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
     where
   obj Y := mk <| F.map Y.hom
-  map f := Over.homMk (F.map f.left) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
+  map f := Over.homMk (F.map f.left)
+    (by simp only [Functor.id_obj, mk_left, Functor.const_obj_obj, mk_hom, ← F.map_comp, w])
 #align category_theory.over.post CategoryTheory.Over.post
 
 end
@@ -536,7 +537,8 @@ variable {D : Type u₂} [Category.{v₂} D]
 @[simps]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X) where
   obj Y := mk <| F.map Y.hom
-  map f := Under.homMk (F.map f.right) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
+  map f := Under.homMk (F.map f.right)
+    (by simp only [Functor.id_obj, Functor.const_obj_obj, mk_right, mk_hom, ← F.map_comp, w])
 #align category_theory.under.post CategoryTheory.Under.post
 
 end
style: fix multiple spaces before colon (#7411)

Purely cosmetic PR

Diff
@@ -524,7 +524,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
   let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
     dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
   -- Porting note: add type ascription here to `homMk m`
-  suffices l' = (homMk m  : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
+  suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
   rw [← cancel_epi k]; ext; apply a
 #align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
 
style: fix wrapping of where (#7149)
Diff
@@ -44,8 +44,8 @@ def Over (X : T) :=
 instance (X : T) : Category (Over X) := commaCategory
 
 -- Satisfying the inhabited linter
-instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
-    where default :=
+instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T)) where
+  default :=
     { left := default
       right := default
       hom := 𝟙 _ }
@@ -341,8 +341,8 @@ def Under (X : T) :=
 instance (X : T) : Category (Under X) := commaCategory
 
 -- Satisfying the inhabited linter
-instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
-    where default :=
+instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T)) where
+  default :=
     { left := default
       right := default
       hom := 𝟙 _ }
feat: upgrade a functor to a functor to structured arrows (#6787)
Diff
@@ -569,4 +569,48 @@ noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
 
 end StructuredArrow
 
+namespace Functor
+
+variable {S : Type u₂} [Category.{v₂} S]
+
+/-- Given `X : T`, to upgrade a functor `F : S ⥤ T` to a functor `S ⥤ Over X`, it suffices to
+    provide maps `F.obj Y ⟶ X` for all `Y` making the obvious triangles involving all `F.map g`
+    commute. -/
+@[simps! obj_left map_left]
+def toOver (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : S ⥤ Over X :=
+  F.toCostructuredArrow (𝟭 _) X f h
+
+/-- Upgrading a functor `S ⥤ T` to a functor `S ⥤ Over X` and composing with the forgetful functor
+    `Over X ⥤ T` recovers the original functor. -/
+def toOverCompForget (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : F.toOver X f h ⋙ Over.forget _ ≅ F :=
+  Iso.refl _
+
+@[simp]
+lemma toOver_comp_forget (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : F.toOver X f h ⋙ Over.forget _ = F :=
+  rfl
+
+/-- Given `X : T`, to upgrade a functor `F : S ⥤ T` to a functor `S ⥤ Under X`, it suffices to
+    provide maps `X ⟶ F.obj Y` for all `Y` making the obvious triangles involving all `F.map g`
+    commute.  -/
+@[simps! obj_right map_right]
+def toUnder (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : S ⥤ Under X :=
+  F.toStructuredArrow X (𝟭 _) f h
+
+/-- Upgrading a functor `S ⥤ T` to a functor `S ⥤ Under X` and composing with the forgetful functor
+    `Under X ⥤ T` recovers the original functor. -/
+def toUnderCompForget (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : F.toUnder X f h ⋙ Under.forget _ ≅ F :=
+  Iso.refl _
+
+@[simp]
+lemma toUnder_comp_forget (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+    (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : F.toUnder X f h ⋙ Under.forget _ = F :=
+  rfl
+
+end Functor
+
 end CategoryTheory
feat: the forgetful functor from CostructuredArrow F X to Over X (#6366)
Diff
@@ -306,6 +306,32 @@ end
 
 end Over
 
+namespace CostructuredArrow
+
+variable {D : Type u₂} [Category.{v₂} D]
+
+/-- Reinterpreting an `F`-costructured arrow `F.obj d ⟶ X` as an arrow over `X` induces a functor
+    `CostructuredArrow F X ⥤ Over X`. -/
+@[simps!]
+def toOver (F : D ⥤ T) (X : T) : CostructuredArrow F X ⥤ Over X :=
+  CostructuredArrow.pre F (𝟭 T) X
+
+instance (F : D ⥤ T) (X : T) [Faithful F] : Faithful (toOver F X) :=
+  show Faithful (CostructuredArrow.pre _ _ _) from inferInstance
+
+instance (F : D ⥤ T) (X : T) [Full F] : Full (toOver F X) :=
+  show Full (CostructuredArrow.pre _ _ _) from inferInstance
+
+instance (F : D ⥤ T) (X : T) [EssSurj F] : EssSurj (toOver F X) :=
+  show EssSurj (CostructuredArrow.pre _ _ _) from inferInstance
+
+/-- An equivalence `F` induces an equivalence `CostructuredArrow F X ≌ Over X`. -/
+noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [IsEquivalence F] :
+    IsEquivalence (toOver F X) :=
+  CostructuredArrow.isEquivalencePre _ _ _
+
+end CostructuredArrow
+
 /-- The under category has as objects arrows with domain `X` and as morphisms commutative
     triangles. -/
 def Under (X : T) :=
@@ -517,4 +543,30 @@ end
 
 end Under
 
+namespace StructuredArrow
+
+variable {D : Type u₂} [Category.{v₂} D]
+
+/-- Reinterpreting an `F`-structured arrow `X ⟶ F.obj d` as an arrow under `X` induces a functor
+    `StructuredArrow X F ⥤ Under X`. -/
+@[simps!]
+def toUnder (X : T) (F : D ⥤ T) : StructuredArrow X F ⥤ Under X :=
+  StructuredArrow.pre X F (𝟭 T)
+
+instance (X : T) (F : D ⥤ T) [Faithful F] : Faithful (toUnder X F) :=
+  show Faithful (StructuredArrow.pre _ _ _) from inferInstance
+
+instance (X : T) (F : D ⥤ T) [Full F] : Full (toUnder X F) :=
+  show Full (StructuredArrow.pre _ _ _) from inferInstance
+
+instance (X : T) (F : D ⥤ T) [EssSurj F] : EssSurj (toUnder X F) :=
+  show EssSurj (StructuredArrow.pre _ _ _) from inferInstance
+
+/-- An equivalence `F` induces an equivalence `StructuredArrow X F ≌ Under X`. -/
+noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
+    IsEquivalence (toUnder X F) :=
+  StructuredArrow.isEquivalencePre _ _ _
+
+end StructuredArrow
+
 end CategoryTheory
feat: identity is terminal in the over category (#6402)
Diff
@@ -204,6 +204,10 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
     repeat (ext; simp)
 #align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
 
+/-- The identity over `X` is terminal. -/
+def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
+  CostructuredArrow.mkIdTerminal
+
 instance forget_faithful : Faithful (forget X) where
 #align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
 
@@ -456,6 +460,10 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
     repeat (ext; simp)
 #align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
 
+/-- The identity under `X` is initial. -/
+def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
+  StructuredArrow.mkIdInitial
+
 instance forget_faithful : Faithful (forget X) where
 #align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
 
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,17 +2,14 @@
 Copyright (c) 2019 Johan Commelin. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Johan Commelin, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.CategoryTheory.StructuredArrow
 import Mathlib.CategoryTheory.PUnit
 import Mathlib.CategoryTheory.Functor.ReflectsIso
 import Mathlib.CategoryTheory.Functor.EpiMono
 
+#align_import category_theory.over from "leanprover-community/mathlib"@"8a318021995877a44630c898d0b2bc376fceef3b"
+
 /-!
 # Over and under categories
 
chore: cleanup whitespace (#5988)

Grepping for [^ .:{-] [^ :] and reviewing the results. Once I started I couldn't stop. :-)

Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -200,7 +200,7 @@ end
 
 instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
   reflects {Y Z} f t := by
-    let g : Z ⟶  Y := Over.homMk (inv ((forget X).map f))
+    let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
       ((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -241,7 +241,7 @@ instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :
   refine' ⟨fun { Y : T } l m a => _⟩
   let l' : mk (m ≫ f.hom) ⟶ f := homMk l (by
         dsimp; rw [← Over.w k, ←Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
-  suffices l' = (homMk m : mk (m ≫ f.hom) ⟶  f) by apply congrArg CommaMorphism.left this
+  suffices l' = (homMk m : mk (m ≫ f.hom) ⟶ f) by apply congrArg CommaMorphism.left this
   rw [← cancel_mono k]
   ext
   apply a
@@ -452,7 +452,7 @@ end
 
 instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
   reflects {Y Z} f t := by
-    let g : Z ⟶  Y := Under.homMk (inv ((Under.forget X).map f))
+    let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
       ((IsIso.comp_inv_eq _).2 (Under.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -493,7 +493,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
   let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
     dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
   -- Porting note: add type ascription here to `homMk m`
-  suffices l' = (homMk m  : g ⟶  mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
+  suffices l' = (homMk m  : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
   rw [← cancel_epi k]; ext; apply a
 #align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
 
chore: fix grammar 2/3 (#5002)

Part 2 of #5001

Diff
@@ -473,8 +473,8 @@ theorem mono_of_mono_right {f g : Under X} (k : f ⟶ g) [hk : Mono k.right] : M
 #align category_theory.under.mono_of_mono_right CategoryTheory.Under.mono_of_mono_right
 
 /--
-If `k.right` is a epimorphism, then `k` is a epimorphism. In other words, `Under.forget X` reflects
-epimorphisms.
+If `k.right` is an epimorphism, then `k` is an epimorphism. In other words, `Under.forget X`
+reflects epimorphisms.
 The converse of `CategoryTheory.Under.epi_right_of_epi`.
 
 This lemma is not an instance, to avoid loops in type class inference.
@@ -484,8 +484,8 @@ theorem epi_of_epi_right {f g : Under X} (k : f ⟶ g) [hk : Epi k.right] : Epi
 #align category_theory.under.epi_of_epi_right CategoryTheory.Under.epi_of_epi_right
 
 /--
-If `k` is a epimorphism, then `k.right` is a epimorphism. In other words, `Under.forget X` preserves
-epimorphisms.
+If `k` is an epimorphism, then `k.right` is an epimorphism. In other words, `Under.forget X`
+preserves epimorphisms.
 The converse of `CategoryTheory.under.epi_of_epi_right`.
 -/
 instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right := by
chore: review of automation in category theory (#4793)

Clean up of automation in the category theory library. Leaving out unnecessary proof steps, or fields done by aesop_cat, and making more use of available autoparameters.

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

Diff
@@ -188,19 +188,19 @@ theorem map_map_left : ((map f).map g).left = g.left :=
 
 /-- Mapping by the identity morphism is just the identity functor. -/
 def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
-  NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+  NatIso.ofComponents fun X => isoMk (Iso.refl _)
 #align category_theory.over.map_id CategoryTheory.Over.mapId
 
 /-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
 def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙ map g :=
-  NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+  NatIso.ofComponents fun X => isoMk (Iso.refl _)
 #align category_theory.over.map_comp CategoryTheory.Over.mapComp
 
 end
 
 instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
   reflects {Y Z} f t := by
-    let g :Z ⟶  Y := Over.homMk (inv ((forget X).map f))
+    let g : Z ⟶  Y := Over.homMk (inv ((forget X).map f))
       ((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -273,12 +273,8 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
     where
   functor := iteratedSliceForward f
   inverse := iteratedSliceBackward f
-  unitIso :=
-    NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)
-      (by aesop_cat)) (by aesop_cat)) fun g => by ext; dsimp; simp
-  counitIso :=
-    NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by aesop_cat)) fun g =>
-      by ext; dsimp; simp
+  unitIso := NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)))
+  counitIso := NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _))
 #align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
 
 theorem iteratedSliceForward_forget :
@@ -373,7 +369,8 @@ attribute [-simp, nolint simpNF] homMk_left_down_down
 /-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
 direction gives a commutative triangle.
 -/
-def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.hom ≫ hr.hom = g.hom) : f ≅ g :=
+def isoMk {f g : Under X} (hr : f.right ≅ g.right)
+    (hw : f.hom ≫ hr.hom = g.hom := by aesop_cat) : f ≅ g :=
   StructuredArrow.isoMk hr hw
 #align category_theory.under.iso_mk CategoryTheory.Under.isoMk
 
@@ -443,12 +440,12 @@ theorem map_map_right : ((map f).map g).right = g.right :=
 
 /-- Mapping by the identity morphism is just the identity functor. -/
 def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
-  NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+  NatIso.ofComponents fun X => isoMk (Iso.refl _)
 #align category_theory.under.map_id CategoryTheory.Under.mapId
 
 /-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
 def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙ map f :=
-  NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+  NatIso.ofComponents fun X => isoMk (Iso.refl _)
 #align category_theory.under.map_comp CategoryTheory.Under.mapComp
 
 end
chore: bye-bye, solo bys! (#3825)

This PR puts, with one exception, every single remaining by that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh. The exception is when the by begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.

Essentially this is s/\n *by$/ by/g, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated bys".

Diff
@@ -330,8 +330,8 @@ namespace Under
 variable {X : T}
 
 @[ext]
-theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
-  by
+theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) :
+    f = g := by
   let ⟨_,b,_⟩ := f; let ⟨_,e,_⟩ := g
   congr; simp only [eq_iff_true_of_subsingleton]
 #align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
chore: fix #align lines (#3640)

This PR fixes two things:

  • Most align statements for definitions and theorems and instances that are separated by two newlines from the relevant declaration (s/\n\n#align/\n#align). This is often seen in the mathport output after ending calc blocks.
  • All remaining more-than-one-line #align statements. (This was needed for a script I wrote for #3630.)
Diff
@@ -64,7 +64,6 @@ theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.
   let ⟨_,e,_⟩ := g
   congr
   simp only [eq_iff_true_of_subsingleton]
-
 #align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
 
 -- @[simp] : Porting note : simp can prove this
chore: bump to nightly-2023-04-11 (#3139)
Diff
@@ -93,7 +93,7 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
 
 /-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
     be a global instance, but it is sometimes useful. -/
-def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
+def coeFromHom {X Y : T} : CoeOut (Y ⟶ X) (Over X) where coe := mk
 #align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
 
 section
fix: do not use nonterminal Aesop for auto-params (#2527)

This commit makes aesop_cat and aesop_graph terminal (i.e. they either solve the goal or fail). This appears to solve issues where non-terminal tactics, when used as auto-params, introduce unknown universe variables. See

https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Goal.20state.20not.20updating.2C.20bugs.2C.20etc.2E

Since there are some intended nonterminal uses of aesop_cat, we introduce aesop_cat_nonterminal as the nonterminal equivalent of aesop_cat.

Diff
@@ -303,7 +303,7 @@ variable {D : Type u₂} [Category.{v₂} D]
 def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
     where
   obj Y := mk <| F.map Y.hom
-  map f := Over.homMk (F.map f.left) (by aesop_cat; erw [← F.map_comp, w])
+  map f := Over.homMk (F.map f.left) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
 #align category_theory.over.post CategoryTheory.Over.post
 
 end
@@ -509,7 +509,7 @@ variable {D : Type u₂} [Category.{v₂} D]
 @[simps]
 def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X) where
   obj Y := mk <| F.map Y.hom
-  map f := Under.homMk (F.map f.right) (by aesop_cat; erw [← F.map_comp, w])
+  map f := Under.homMk (F.map f.right) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
 #align category_theory.under.post CategoryTheory.Under.post
 
 end
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
@@ -41,10 +41,10 @@ triangles.
 See <https://stacks.math.columbia.edu/tag/001G>.
 -/
 def Over (X : T) :=
-  CostructuredArrow (𝟭 T) X 
+  CostructuredArrow (𝟭 T) X
 #align category_theory.over CategoryTheory.Over
 
-instance (X : T) : Category (Over X) := commaCategory 
+instance (X : T) : Category (Over X) := commaCategory
 
 -- Satisfying the inhabited linter
 instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
@@ -61,14 +61,14 @@ variable {X : T}
 @[ext]
 theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.left) : f = g := by
   let ⟨_,b,_⟩ := f
-  let ⟨_,e,_⟩ := g 
+  let ⟨_,e,_⟩ := g
   congr
   simp only [eq_iff_true_of_subsingleton]
 
 #align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
 
--- @[simp] : Porting note : simp can prove this 
-theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only 
+-- @[simp] : Porting note : simp can prove this
+theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only
 #align category_theory.over.over_right CategoryTheory.Over.over_right
 
 @[simp]
@@ -199,9 +199,9 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
 
 end
 
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where 
-  reflects {Y Z} f t := by 
-    let g :Z ⟶  Y := Over.homMk (inv ((forget X).map f)) 
+instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+  reflects {Y Z} f t := by
+    let g :Z ⟶  Y := Over.homMk (inv ((forget X).map f))
       ((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -275,7 +275,7 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
   functor := iteratedSliceForward f
   inverse := iteratedSliceBackward f
   unitIso :=
-    NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _) 
+    NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)
       (by aesop_cat)) (by aesop_cat)) fun g => by ext; dsimp; simp
   counitIso :=
     NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by aesop_cat)) fun g =>
@@ -332,13 +332,13 @@ variable {X : T}
 
 @[ext]
 theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
-  by 
+  by
   let ⟨_,b,_⟩ := f; let ⟨_,e,_⟩ := g
   congr; simp only [eq_iff_true_of_subsingleton]
 #align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
 
 -- @[simp] Porting note: simp can prove this
-theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only 
+theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only
 #align category_theory.under.under_left CategoryTheory.Under.under_left
 
 @[simp]
@@ -454,9 +454,9 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
 
 end
 
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where 
-  reflects {Y Z} f t := by 
-    let g : Z ⟶  Y := Under.homMk (inv ((Under.forget X).map f)) 
+instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+  reflects {Y Z} f t := by
+    let g : Z ⟶  Y := Under.homMk (inv ((Under.forget X).map f))
       ((IsIso.comp_inv_eq _).2 (Under.w f).symm)
     dsimp [forget] at t
     refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -495,7 +495,7 @@ The converse of `CategoryTheory.under.epi_of_epi_right`.
 instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right := by
   refine' ⟨fun { Y : T } l m a => _⟩
   let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
-    dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc]) 
+    dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
   -- Porting note: add type ascription here to `homMk m`
   suffices l' = (homMk m  : g ⟶  mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
   rw [← cancel_epi k]; ext; apply a
@@ -517,4 +517,3 @@ end
 end Under
 
 end CategoryTheory
-
feat: port CategoryTheory.Over (#2496)

Dependencies 106

107 files ported (100.0%)
40558 lines ported (100.0%)

All dependencies are ported!