category_theory.elementsMathlib.CategoryTheory.Elements

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
@@ -3,9 +3,9 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import CategoryTheory.StructuredArrow
+import CategoryTheory.Comma.StructuredArrow
 import CategoryTheory.Groupoid
-import CategoryTheory.Punit
+import CategoryTheory.PUnit
 
 #align_import category_theory.elements from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
Diff
@@ -3,9 +3,9 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathbin.CategoryTheory.StructuredArrow
-import Mathbin.CategoryTheory.Groupoid
-import Mathbin.CategoryTheory.Punit
+import CategoryTheory.StructuredArrow
+import CategoryTheory.Groupoid
+import CategoryTheory.Punit
 
 #align_import category_theory.elements from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
Diff
@@ -2,16 +2,13 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.elements
-! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
-! 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.Groupoid
 import Mathbin.CategoryTheory.Punit
 
+#align_import category_theory.elements from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
+
 /-!
 # The category of elements
 
Diff
@@ -280,7 +280,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     simp only [functor.id_obj, functor.right_op_obj, to_costructured_arrow_obj, functor.comp_obj,
       costructured_arrow.mk]
     congr
-    ext (x f)
+    ext x f
     convert congr_fun (X_hom.naturality f.op).symm (𝟙 X_left)
     simp only [Quiver.Hom.unop_op, yoneda_obj_map]
     erw [category.comp_id]
@@ -289,11 +289,11 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
   simp [costructured_arrow.hom_mk]
   delta costructured_arrow.mk
   congr
-  · ext (x f)
+  · ext x f
     convert congr_fun (X_hom.naturality f.op).symm (𝟙 X_left)
     simp only [Quiver.Hom.unop_op, CategoryTheory.yoneda_obj_map]
     erw [category.comp_id]
-  · ext (x f)
+  · ext x f
     convert congr_fun (Y_hom.naturality f.op).symm (𝟙 Y_left)
     simp only [Quiver.Hom.unop_op, CategoryTheory.yoneda_obj_map]
     erw [category.comp_id]
@@ -323,7 +323,7 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
     simp only [costructured_arrow.map_mk, to_costructured_arrow_obj, functor.op_obj,
       functor.comp_obj]
     congr
-    ext (x f)
+    ext x f
     simpa using congr_fun (α.naturality f.op).symm (unop X).snd
   · intro X Y f; ext
     have :
Diff
@@ -149,6 +149,7 @@ def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F
 #align category_theory.category_of_elements.to_structured_arrow CategoryTheory.CategoryOfElements.toStructuredArrow
 -/
 
+#print CategoryTheory.CategoryOfElements.toStructuredArrow_obj /-
 @[simp]
 theorem toStructuredArrow_obj (X) :
     (toStructuredArrow F).obj X =
@@ -157,11 +158,14 @@ theorem toStructuredArrow_obj (X) :
         Hom := fun _ => X.2 } :=
   rfl
 #align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_obj
+-/
 
+#print CategoryTheory.CategoryOfElements.to_comma_map_right /-
 @[simp]
 theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).right = f.val :=
   rfl
 #align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_right
+-/
 
 #print CategoryTheory.CategoryOfElements.fromStructuredArrow /-
 /-- The reverse direction of the equivalence `F.elements ≅ (*, F)`. -/
@@ -172,17 +176,22 @@ def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements
 #align category_theory.category_of_elements.from_structured_arrow CategoryTheory.CategoryOfElements.fromStructuredArrow
 -/
 
+#print CategoryTheory.CategoryOfElements.fromStructuredArrow_obj /-
 @[simp]
 theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right, X.Hom PUnit.unit⟩ :=
   rfl
 #align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
+-/
 
+#print CategoryTheory.CategoryOfElements.fromStructuredArrow_map /-
 @[simp]
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
     (fromStructuredArrow F).map f = ⟨f.right, congr_fun f.w'.symm PUnit.unit⟩ :=
   rfl
 #align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_map
+-/
 
+#print CategoryTheory.CategoryOfElements.structuredArrowEquivalence /-
 /-- The equivalence between the category of elements `F.elements`
     and the comma category `(*, F)`. -/
 @[simps]
@@ -191,6 +200,7 @@ def structuredArrowEquivalence : F.Elements ≌ StructuredArrow PUnit F :=
     (NatIso.ofComponents (fun X => eqToIso (by tidy)) (by tidy))
     (NatIso.ofComponents (fun X => StructuredArrow.isoMk (Iso.refl _) (by tidy)) (by tidy))
 #align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalence
+-/
 
 open Opposite
 
@@ -236,11 +246,13 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
 #align category_theory.category_of_elements.from_costructured_arrow CategoryTheory.CategoryOfElements.fromCostructuredArrow
 -/
 
+#print CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk /-
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
     (fromCostructuredArrow F).obj (op (CostructuredArrow.mk f)) = ⟨op X, yonedaEquiv.1 f⟩ :=
   rfl
 #align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk
+-/
 
 #print CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq /-
 /-- The unit of the equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` is indeed iso. -/
@@ -290,6 +302,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
 #align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
 -/
 
+#print CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence /-
 /-- The equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
 @[simps]
 def costructuredArrowYonedaEquivalence (F : Cᵒᵖ ⥤ Type v) :
@@ -297,6 +310,7 @@ def costructuredArrowYonedaEquivalence (F : Cᵒᵖ ⥤ Type v) :
   Equivalence.mk (toCostructuredArrow F) (fromCostructuredArrow F).rightOp
     (NatIso.op (eqToIso (from_toCostructuredArrow_eq F))) (eqToIso <| to_fromCostructuredArrow_eq F)
 #align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence
+-/
 
 #print CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality /-
 /-- The equivalence `(-.elements)ᵒᵖ ≅ (yoneda, -)` of is actually a natural isomorphism of functors.
Diff
@@ -103,8 +103,7 @@ noncomputable instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G 
       calc
         F.map (inv f.val) q.2 = F.map (inv f.val) (F.map f.val p.2) := by rw [f.2]
         _ = (F.map f.val ≫ F.map (inv f.val)) p.2 := rfl
-        _ = p.2 := by rw [← F.map_comp]; simp
-        ⟩
+        _ = p.2 := by rw [← F.map_comp]; simp⟩
   inv_comp' _ _ _ := by ext; simp
   comp_inv' _ _ _ := by ext; simp
 #align category_theory.groupoid_of_elements CategoryTheory.groupoidOfElements
Diff
@@ -226,7 +226,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
   map X Y f :=
     ⟨f.unop.1.op,
       by
-      convert(congr_fun ((unop X).Hom.naturality f.unop.left.op) (𝟙 _)).symm
+      convert (congr_fun ((unop X).Hom.naturality f.unop.left.op) (𝟙 _)).symm
       simp only [Equiv.toFun_as_coe, Quiver.Hom.unop_op, yoneda_equiv_apply, types_comp_apply,
         category.comp_id, yoneda_obj_map]
       have : yoneda.map f.unop.left ≫ (unop X).Hom = (unop Y).Hom := by convert f.unop.3;
Diff
@@ -52,7 +52,7 @@ is a pair `(X : C, x : F.obj X)`.
 -/
 @[nolint has_nonempty_instance]
 def Functor.Elements (F : C ⥤ Type w) :=
-  Σc : C, F.obj c
+  Σ c : C, F.obj c
 #align category_theory.functor.elements CategoryTheory.Functor.Elements
 -/
 
Diff
@@ -150,12 +150,6 @@ def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F
 #align category_theory.category_of_elements.to_structured_arrow CategoryTheory.CategoryOfElements.toStructuredArrow
 -/
 
-/- warning: category_theory.category_of_elements.to_structured_arrow_obj -> CategoryTheory.CategoryOfElements.toStructuredArrow_obj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F), Eq.{succ (max u3 u1)} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Comma.mk.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1}) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (fun (_x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1})) => Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (CategoryTheory.Comma.mk.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1}) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (fun (_x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1})) => Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_objₓ'. -/
 @[simp]
 theorem toStructuredArrow_obj (X) :
     (toStructuredArrow F).obj X =
@@ -165,9 +159,6 @@ theorem toStructuredArrow_obj (X) :
   rfl
 #align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_obj
 
-/- warning: category_theory.category_of_elements.to_comma_map_right -> CategoryTheory.CategoryOfElements.to_comma_map_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_rightₓ'. -/
 @[simp]
 theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).right = f.val :=
   rfl
@@ -182,32 +173,17 @@ def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements
 #align category_theory.category_of_elements.from_structured_arrow CategoryTheory.CategoryOfElements.fromStructuredArrow
 -/
 
-/- warning: category_theory.category_of_elements.from_structured_arrow_obj -> CategoryTheory.CategoryOfElements.fromStructuredArrow_obj is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (Sigma.mk.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X PUnit.unit.{succ u1}))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Sigma.mk.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X PUnit.unit.{succ u1}))
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_objₓ'. -/
 @[simp]
 theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right, X.Hom PUnit.unit⟩ :=
   rfl
 #align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
 
-/- warning: category_theory.category_of_elements.from_structured_arrow_map -> CategoryTheory.CategoryOfElements.fromStructuredArrow_map is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_mapₓ'. -/
 @[simp]
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
     (fromStructuredArrow F).map f = ⟨f.right, congr_fun f.w'.symm PUnit.unit⟩ :=
   rfl
 #align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_map
 
-/- warning: category_theory.category_of_elements.structured_arrow_equivalence -> CategoryTheory.CategoryOfElements.structuredArrowEquivalence is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F)
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalenceₓ'. -/
 /-- The equivalence between the category of elements `F.elements`
     and the comma category `(*, F)`. -/
 @[simps]
@@ -261,9 +237,6 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
 #align category_theory.category_of_elements.from_costructured_arrow CategoryTheory.CategoryOfElements.fromCostructuredArrow
 -/
 
-/- warning: category_theory.category_of_elements.from_costructured_arrow_obj_mk -> CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mkₓ'. -/
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
     (fromCostructuredArrow F).obj (op (CostructuredArrow.mk f)) = ⟨op X, yonedaEquiv.1 f⟩ :=
@@ -318,12 +291,6 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
 #align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
 -/
 
-/- warning: category_theory.category_of_elements.costructured_arrow_yoneda_equivalence -> CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
-Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalenceₓ'. -/
 /-- The equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
 @[simps]
 def costructuredArrowYonedaEquivalence (F : Cᵒᵖ ⥤ Type v) :
Diff
@@ -103,16 +103,10 @@ noncomputable instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G 
       calc
         F.map (inv f.val) q.2 = F.map (inv f.val) (F.map f.val p.2) := by rw [f.2]
         _ = (F.map f.val ≫ F.map (inv f.val)) p.2 := rfl
-        _ = p.2 := by
-          rw [← F.map_comp]
-          simp
+        _ = p.2 := by rw [← F.map_comp]; simp
         ⟩
-  inv_comp' _ _ _ := by
-    ext
-    simp
-  comp_inv' _ _ _ := by
-    ext
-    simp
+  inv_comp' _ _ _ := by ext; simp
+  comp_inv' _ _ _ := by ext; simp
 #align category_theory.groupoid_of_elements CategoryTheory.groupoidOfElements
 -/
 
@@ -259,9 +253,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
       convert(congr_fun ((unop X).Hom.naturality f.unop.left.op) (𝟙 _)).symm
       simp only [Equiv.toFun_as_coe, Quiver.Hom.unop_op, yoneda_equiv_apply, types_comp_apply,
         category.comp_id, yoneda_obj_map]
-      have : yoneda.map f.unop.left ≫ (unop X).Hom = (unop Y).Hom :=
-        by
-        convert f.unop.3
+      have : yoneda.map f.unop.left ≫ (unop X).Hom = (unop Y).Hom := by convert f.unop.3;
         erw [category.comp_id]
       erw [← this]
       simp only [yoneda_map_app, functor_to_types.comp]
@@ -287,14 +279,8 @@ theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
   intro X Y f
   have :
     ∀ {a b : F.elements} (H : a = b),
-      ↑(eq_to_hom H) =
-        eq_to_hom
-          (show a.fst = b.fst by
-            cases H
-            rfl) :=
-    fun _ _ H => by
-    cases H
-    rfl
+      ↑(eq_to_hom H) = eq_to_hom (show a.fst = b.fst by cases H; rfl) :=
+    fun _ _ H => by cases H; rfl
   ext; simp [this]
   tidy
 #align category_theory.category_of_elements.from_to_costructured_arrow_eq CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq
@@ -306,9 +292,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     (fromCostructuredArrow F).rightOp ⋙ toCostructuredArrow F = 𝟭 _ :=
   by
   apply functor.hext
-  · intro X
-    cases X
-    cases X_right
+  · intro X; cases X; cases X_right
     simp only [functor.id_obj, functor.right_op_obj, to_costructured_arrow_obj, functor.comp_obj,
       costructured_arrow.mk]
     congr
@@ -361,18 +345,11 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
     congr
     ext (x f)
     simpa using congr_fun (α.naturality f.op).symm (unop X).snd
-  · intro X Y f
-    ext
+  · intro X Y f; ext
     have :
       ∀ {F : Cᵒᵖ ⥤ Type v} {a b : costructured_arrow yoneda F} (H : a = b),
-        comma_morphism.left (eq_to_hom H) =
-          eq_to_hom
-            (show a.left = b.left by
-              cases H
-              rfl) :=
-      fun _ _ _ H => by
-      cases H
-      rfl
+        comma_morphism.left (eq_to_hom H) = eq_to_hom (show a.left = b.left by cases H; rfl) :=
+      fun _ _ _ H => by cases H; rfl
     simp [this]
 #align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
 -/
Diff
@@ -172,10 +172,7 @@ theorem toStructuredArrow_obj (X) :
 #align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_obj
 
 /- warning: category_theory.category_of_elements.to_comma_map_right -> CategoryTheory.CategoryOfElements.to_comma_map_right is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} {Y : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} (f : Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X Y f)) (Subtype.val.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) => Eq.{succ u1} (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y) f (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X)) (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) f)
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} {Y : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} (f : Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y) (Prefunctor.map.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X Y f)) (Subtype.val.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) => Eq.{succ u1} (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y) f (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X)) (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) f)
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_rightₓ'. -/
 @[simp]
 theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).right = f.val :=
@@ -203,10 +200,7 @@ theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right
 #align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
 
 /- warning: category_theory.category_of_elements.from_structured_arrow_map -> CategoryTheory.CategoryOfElements.fromStructuredArrow_map is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} {Y : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} (f : Quiver.Hom.{succ (max u1 u2), max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y)) (CategoryTheory.Functor.map.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X Y f) (Subtype.mk.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) => Eq.{succ u1} (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y)) f (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X))) (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f) (congr_fun.{succ u1, succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (fun (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CommaMorphism.w'.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) PUnit.unit.{succ u1}))
-but is expected to have type
-  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} {Y : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} (f : Quiver.Hom.{max (succ u2) (succ u1), max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y)) (Prefunctor.map.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X Y f) (Subtype.mk.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) => Eq.{succ u1} (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y)) f (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X))) (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f) (congr_fun.{succ u1, succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (fun (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.map.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.map.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CommaMorphism.w.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) PUnit.unit.{succ u1}))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_mapₓ'. -/
 @[simp]
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
@@ -276,10 +270,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
 -/
 
 /- warning: category_theory.category_of_elements.from_costructured_arrow_obj_mk -> CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk is a dubious translation:
-lean 3 declaration is
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Functor.obj.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F) (Opposite.op.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{succ (max u2 u1), succ u1} (Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F) (CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
-but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)))) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F)) (Opposite.op.{max (succ u2) (succ u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{max (succ u2) (succ u1), succ u1} (Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F) (Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
+<too large>
 Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mkₓ'. -/
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
Diff
@@ -279,7 +279,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
 lean 3 declaration is
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Functor.obj.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F) (Opposite.op.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{succ (max u2 u1), succ u1} (Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F) (CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
 but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)))) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F)) (Opposite.op.{max (succ u2) (succ u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{max (succ u2) (succ u1), succ u1} (Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F) (Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)))) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ (max u2 u1))} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F)) (Opposite.op.{max (succ u2) (succ u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{max (succ u2) (succ u1), succ u1} (Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F) (Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
 Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mkₓ'. -/
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
@@ -347,7 +347,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
 lean 3 declaration is
   forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
 but is expected to have type
-  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
 Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalenceₓ'. -/
 /-- The equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
 @[simps]
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module category_theory.elements
-! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
+! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Punit
 /-!
 # The category of elements
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file defines the category of elements, also known as (a special case of) the Grothendieck
 construction.
 
Diff
@@ -43,6 +43,7 @@ universe w v u
 
 variable {C : Type u} [Category.{v} C]
 
+#print CategoryTheory.Functor.Elements /-
 /-- The type of objects for the category of elements of a functor `F : C ⥤ Type`
 is a pair `(X : C, x : F.obj X)`.
 -/
@@ -50,7 +51,9 @@ is a pair `(X : C, x : F.obj X)`.
 def Functor.Elements (F : C ⥤ Type w) :=
   Σc : C, F.obj c
 #align category_theory.functor.elements CategoryTheory.Functor.Elements
+-/
 
+#print CategoryTheory.categoryOfElements /-
 /-- The category structure on `F.elements`, for `F : C ⥤ Type`.
     A morphism `(X, x) ⟶ (Y, y)` is a morphism `f : X ⟶ Y` in `C`, so `F.map f` takes `x` to `y`.
  -/
@@ -60,27 +63,35 @@ instance categoryOfElements (F : C ⥤ Type w) : Category.{v} F.Elements
   id p := ⟨𝟙 p.1, by obviously⟩
   comp p q r f g := ⟨f.val ≫ g.val, by obviously⟩
 #align category_theory.category_of_elements CategoryTheory.categoryOfElements
+-/
 
 namespace CategoryOfElements
 
+#print CategoryTheory.CategoryOfElements.ext /-
 @[ext]
 theorem ext (F : C ⥤ Type w) {x y : F.Elements} (f g : x ⟶ y) (w : f.val = g.val) : f = g :=
   Subtype.ext_val w
-#align category_theory.category_of_elements.ext CategoryTheory.categoryOfElements.ext
+#align category_theory.category_of_elements.ext CategoryTheory.CategoryOfElements.ext
+-/
 
+#print CategoryTheory.CategoryOfElements.comp_val /-
 @[simp]
 theorem comp_val {F : C ⥤ Type w} {p q r : F.Elements} {f : p ⟶ q} {g : q ⟶ r} :
     (f ≫ g).val = f.val ≫ g.val :=
   rfl
-#align category_theory.category_of_elements.comp_val CategoryTheory.categoryOfElements.comp_val
+#align category_theory.category_of_elements.comp_val CategoryTheory.CategoryOfElements.comp_val
+-/
 
+#print CategoryTheory.CategoryOfElements.id_val /-
 @[simp]
 theorem id_val {F : C ⥤ Type w} {p : F.Elements} : (𝟙 p : p ⟶ p).val = 𝟙 p.1 :=
   rfl
-#align category_theory.category_of_elements.id_val CategoryTheory.categoryOfElements.id_val
+#align category_theory.category_of_elements.id_val CategoryTheory.CategoryOfElements.id_val
+-/
 
 end CategoryOfElements
 
+#print CategoryTheory.groupoidOfElements /-
 noncomputable instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G ⥤ Type w) :
     Groupoid F.Elements
     where
@@ -100,18 +111,22 @@ noncomputable instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G 
     ext
     simp
 #align category_theory.groupoid_of_elements CategoryTheory.groupoidOfElements
+-/
 
 namespace CategoryOfElements
 
 variable (F : C ⥤ Type w)
 
+#print CategoryTheory.CategoryOfElements.π /-
 /-- The functor out of the category of elements which forgets the element. -/
 @[simps]
 def π : F.Elements ⥤ C where
   obj X := X.1
   map X Y f := f.val
-#align category_theory.category_of_elements.π CategoryTheory.categoryOfElements.π
+#align category_theory.category_of_elements.π CategoryTheory.CategoryOfElements.π
+-/
 
+#print CategoryTheory.CategoryOfElements.map /-
 /-- A natural transformation between functors induces a functor between the categories of elements.
 -/
 @[simps]
@@ -119,20 +134,31 @@ def map {F₁ F₂ : C ⥤ Type w} (α : F₁ ⟶ F₂) : F₁.Elements ⥤ F₂
     where
   obj t := ⟨t.1, α.app t.1 t.2⟩
   map t₁ t₂ k := ⟨k.1, by simpa [← k.2] using (functor_to_types.naturality _ _ α k.1 t₁.2).symm⟩
-#align category_theory.category_of_elements.map CategoryTheory.categoryOfElements.map
+#align category_theory.category_of_elements.map CategoryTheory.CategoryOfElements.map
+-/
 
+#print CategoryTheory.CategoryOfElements.map_π /-
 @[simp]
 theorem map_π {F₁ F₂ : C ⥤ Type w} (α : F₁ ⟶ F₂) : map α ⋙ π F₂ = π F₁ :=
   rfl
-#align category_theory.category_of_elements.map_π CategoryTheory.categoryOfElements.map_π
+#align category_theory.category_of_elements.map_π CategoryTheory.CategoryOfElements.map_π
+-/
 
+#print CategoryTheory.CategoryOfElements.toStructuredArrow /-
 /-- The forward direction of the equivalence `F.elements ≅ (*, F)`. -/
 def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F
     where
   obj X := StructuredArrow.mk fun _ => X.2
   map X Y f := StructuredArrow.homMk f.val (by tidy)
-#align category_theory.category_of_elements.to_structured_arrow CategoryTheory.categoryOfElements.toStructuredArrow
+#align category_theory.category_of_elements.to_structured_arrow CategoryTheory.CategoryOfElements.toStructuredArrow
+-/
 
+/- warning: category_theory.category_of_elements.to_structured_arrow_obj -> CategoryTheory.CategoryOfElements.toStructuredArrow_obj is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F), Eq.{succ (max u3 u1)} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Comma.mk.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1}) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (fun (_x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1})) => Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (CategoryTheory.Comma.mk.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1}) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (fun (_x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Discrete.mk.{u1} PUnit.{succ u1} PUnit.unit.{succ u1})) => Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_objₓ'. -/
 @[simp]
 theorem toStructuredArrow_obj (X) :
     (toStructuredArrow F).obj X =
@@ -140,31 +166,57 @@ theorem toStructuredArrow_obj (X) :
         right := X.1
         Hom := fun _ => X.2 } :=
   rfl
-#align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.categoryOfElements.toStructuredArrow_obj
-
+#align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_obj
+
+/- warning: category_theory.category_of_elements.to_comma_map_right -> CategoryTheory.CategoryOfElements.to_comma_map_right is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} {Y : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} (f : Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Functor.obj.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) Y) (CategoryTheory.Functor.map.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F) X Y f)) (Subtype.val.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) => Eq.{succ u1} (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y) f (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) X)) (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) Y)) f)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} {Y : CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F} (f : Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Prefunctor.obj.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y) (Prefunctor.map.{succ u2, max (succ u2) (succ u1), max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.toPrefunctor.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryOfElements.toStructuredArrow.{u1, u2, u3} C _inst_1 F)) X Y f)) (Subtype.val.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) => Eq.{succ u1} (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y) f (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) X)) (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) Y)) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_rightₓ'. -/
 @[simp]
 theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).right = f.val :=
   rfl
-#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.categoryOfElements.to_comma_map_right
+#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_right
 
+#print CategoryTheory.CategoryOfElements.fromStructuredArrow /-
 /-- The reverse direction of the equivalence `F.elements ≅ (*, F)`. -/
 def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements
     where
   obj X := ⟨X.right, X.Hom PUnit.unit⟩
   map X Y f := ⟨f.right, congr_fun f.w'.symm PUnit.unit⟩
-#align category_theory.category_of_elements.from_structured_arrow CategoryTheory.categoryOfElements.fromStructuredArrow
+#align category_theory.category_of_elements.from_structured_arrow CategoryTheory.CategoryOfElements.fromStructuredArrow
+-/
 
+/- warning: category_theory.category_of_elements.from_structured_arrow_obj -> CategoryTheory.CategoryOfElements.fromStructuredArrow_obj is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (Sigma.mk.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X PUnit.unit.{succ u1}))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) (X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F), Eq.{max (succ u3) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Sigma.mk.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X PUnit.unit.{succ u1}))
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_objₓ'. -/
 @[simp]
 theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right, X.Hom PUnit.unit⟩ :=
   rfl
-#align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.categoryOfElements.fromStructuredArrow_obj
-
+#align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
+
+/- warning: category_theory.category_of_elements.from_structured_arrow_map -> CategoryTheory.CategoryOfElements.fromStructuredArrow_map is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} {Y : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} (f : Quiver.Hom.{succ (max u1 u2), max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u1 u2, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u1 u2, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y)) (CategoryTheory.Functor.map.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X Y f) (Subtype.mk.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) => Eq.{succ u1} (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y)) f (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) X))) (Sigma.snd.{u3, u1} C (fun (c : C) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F c) (CategoryTheory.Functor.obj.{max u1 u2, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f) (congr_fun.{succ u1, succ u1} (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (fun (x : CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) => CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Functor.map.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.obj.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (CategoryTheory.Functor.obj.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Functor.map.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CommaMorphism.w'.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) PUnit.unit.{succ u1}))
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}) {X : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} {Y : CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F} (f : Quiver.Hom.{max (succ u2) (succ u1), max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) X Y), Eq.{succ u2} (Quiver.Hom.{succ u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y)) (Prefunctor.map.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X Y f) (Subtype.mk.{succ u2} (Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (fun (f : Quiver.Hom.{succ u2, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) => Eq.{succ u1} (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X)) (Sigma.fst.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y)) f (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) X))) (Sigma.snd.{u3, u1} C (fun (c : C) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) c) (Prefunctor.obj.{max (succ u2) (succ u1), succ u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F))) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.Category.toCategoryStruct.{u2, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u2, max u3 u1, max u3 u1} (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.CategoryOfElements.fromStructuredArrow.{u1, u2, u3} C _inst_1 F)) Y))) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f) (congr_fun.{succ u1, succ u1} (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (fun (x : Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) => Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.map.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Eq.symm.{succ u1} (Quiver.Hom.{succ u1, succ u1} Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y))) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (Prefunctor.map.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.CategoryStruct.comp.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1}) (Prefunctor.obj.{succ u1, succ u1, u1, succ u1} (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}))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1})) (CategoryTheory.Comma.left.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X)) (Prefunctor.obj.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y)) (CategoryTheory.Comma.hom.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (Prefunctor.map.{succ u2, succ u1, u3, succ u1} C (CategoryTheory.CategoryStruct.toQuiver.{u2, u3} C (CategoryTheory.Category.toCategoryStruct.{u2, u3} C _inst_1)) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} F) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X) (CategoryTheory.Comma.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F Y) (CategoryTheory.CommaMorphism.right.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f))) (CategoryTheory.CommaMorphism.w.{u1, u2, u1, u1, u3, succ u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 Type.{u1} CategoryTheory.types.{u1} (CategoryTheory.Functor.fromPUnit.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1}) F X Y f)) PUnit.unit.{succ u1}))
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_mapₓ'. -/
 @[simp]
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
     (fromStructuredArrow F).map f = ⟨f.right, congr_fun f.w'.symm PUnit.unit⟩ :=
   rfl
-#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.categoryOfElements.fromStructuredArrow_map
-
+#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_map
+
+/- warning: category_theory.category_of_elements.structured_arrow_equivalence -> CategoryTheory.CategoryOfElements.structuredArrowEquivalence is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u2, max u1 u2, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.StructuredArrow.category.{u1, succ u1, u3, u2} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F)
+but is expected to have type
+  forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u2, u3} C] (F : CategoryTheory.Functor.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u2, max u2 u1, max u3 u1, max u3 u1} (CategoryTheory.Functor.Elements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.StructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F) (CategoryTheory.categoryOfElements.{u1, u2, u3} C _inst_1 F) (CategoryTheory.instCategoryStructuredArrow.{u2, u1, u3, succ u1} C _inst_1 Type.{u1} CategoryTheory.types.{u1} PUnit.{succ u1} F)
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalenceₓ'. -/
 /-- The equivalence between the category of elements `F.elements`
     and the comma category `(*, F)`. -/
 @[simps]
@@ -172,10 +224,11 @@ def structuredArrowEquivalence : F.Elements ≌ StructuredArrow PUnit F :=
   Equivalence.mk (toStructuredArrow F) (fromStructuredArrow F)
     (NatIso.ofComponents (fun X => eqToIso (by tidy)) (by tidy))
     (NatIso.ofComponents (fun X => StructuredArrow.isoMk (Iso.refl _) (by tidy)) (by tidy))
-#align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.categoryOfElements.structuredArrowEquivalence
+#align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalence
 
 open Opposite
 
+#print CategoryTheory.CategoryOfElements.toCostructuredArrow /-
 /-- The forward direction of the equivalence `F.elementsᵒᵖ ≅ (yoneda, F)`,
 given by `category_theory.yoneda_sections`.
 -/
@@ -192,8 +245,10 @@ def toCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : F.Elementsᵒᵖ ⥤ Costruct
       Subtype.val_eq_coe]
     congr
     exact f.unop.2
-#align category_theory.category_of_elements.to_costructured_arrow CategoryTheory.categoryOfElements.toCostructuredArrow
+#align category_theory.category_of_elements.to_costructured_arrow CategoryTheory.CategoryOfElements.toCostructuredArrow
+-/
 
+#print CategoryTheory.CategoryOfElements.fromCostructuredArrow /-
 /-- The reverse direction of the equivalence `F.elementsᵒᵖ ≅ (yoneda, F)`,
 given by `category_theory.yoneda_equiv`.
 -/
@@ -214,14 +269,22 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
       erw [← this]
       simp only [yoneda_map_app, functor_to_types.comp]
       erw [category.id_comp]⟩
-#align category_theory.category_of_elements.from_costructured_arrow CategoryTheory.categoryOfElements.fromCostructuredArrow
+#align category_theory.category_of_elements.from_costructured_arrow CategoryTheory.CategoryOfElements.fromCostructuredArrow
+-/
 
+/- warning: category_theory.category_of_elements.from_costructured_arrow_obj_mk -> CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Functor.obj.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F) (Opposite.op.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{succ (max u2 u1), succ u1} (Quiver.Hom.{succ (max u2 u1), max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u1 u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.obj.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) X) F) (CategoryTheory.Functor.obj.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) {X : C} (f : Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (Prefunctor.obj.{max (succ u2) (succ u1), succ u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)))) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F))) (CategoryTheory.Functor.toPrefunctor.{max u2 u1, u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{max u2 u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)) (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.CategoryOfElements.fromCostructuredArrow.{u1, u2} C _inst_1 F)) (Opposite.op.{max (succ u2) (succ u1)} (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.mk.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) F X (CategoryTheory.yoneda.{u1, u2} C _inst_1) f))) (Sigma.mk.{u2, u1} (Opposite.{succ u2} C) (fun (c : Opposite.{succ u2} C) => Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) c) (Opposite.op.{succ u2} C X) (Equiv.toFun.{max (succ u2) (succ u1), succ u1} (Quiver.Hom.{max (succ u2) (succ u1), max (succ u1) u2} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (Prefunctor.obj.{succ u1, max (succ u1) (succ u2), u2, max (succ u1) u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.CategoryStruct.toQuiver.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Category.toCategoryStruct.{max u2 u1, max u2 (succ u1)} (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}))) (CategoryTheory.Functor.toPrefunctor.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1)) X) F) (Prefunctor.obj.{succ u1, succ u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.toCategoryStruct.{u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1))) Type.{u1} (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} Type.{u1} (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} Type.{u1} CategoryTheory.types.{u1})) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1} F) (Opposite.op.{succ u2} C X)) (CategoryTheory.yonedaEquiv.{u1, u2} C _inst_1 X F) f))
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mkₓ'. -/
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
     (fromCostructuredArrow F).obj (op (CostructuredArrow.mk f)) = ⟨op X, yonedaEquiv.1 f⟩ :=
   rfl
-#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.categoryOfElements.fromCostructuredArrow_obj_mk
+#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk
 
+#print CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq /-
 /-- The unit of the equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` is indeed iso. -/
 theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     (toCostructuredArrow F).rightOp ⋙ fromCostructuredArrow F = 𝟭 _ :=
@@ -240,8 +303,10 @@ theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     rfl
   ext; simp [this]
   tidy
-#align category_theory.category_of_elements.from_to_costructured_arrow_eq CategoryTheory.categoryOfElements.from_toCostructuredArrow_eq
+#align category_theory.category_of_elements.from_to_costructured_arrow_eq CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq
+-/
 
+#print CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq /-
 /-- The counit of the equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` is indeed iso. -/
 theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     (fromCostructuredArrow F).rightOp ⋙ toCostructuredArrow F = 𝟭 _ :=
@@ -272,16 +337,24 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     erw [category.comp_id]
   simp
   exact proof_irrel_heq _ _
-#align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.categoryOfElements.to_fromCostructuredArrow_eq
+#align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
+-/
 
+/- warning: category_theory.category_of_elements.costructured_arrow_yoneda_equivalence -> CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence is a dubious translation:
+lean 3 declaration is
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u1 u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.CostructuredArrow.category.{max u2 u1, max u1 u2 (succ u1), u2, u1} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
+but is expected to have type
+  forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (F : CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}), CategoryTheory.Equivalence.{u1, max u2 u1, max u2 u1, max u2 u1} (Opposite.{succ (max u2 u1)} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.CostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F) (CategoryTheory.Category.opposite.{u1, max u2 u1} (CategoryTheory.Functor.Elements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F) (CategoryTheory.categoryOfElements.{u1, u1, u2} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) F)) (CategoryTheory.instCategoryCostructuredArrow.{u1, max u2 u1, u2, max u2 (succ u1)} C _inst_1 (CategoryTheory.Functor.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.Functor.category.{u1, u1, u2, succ u1} (Opposite.{succ u2} C) (CategoryTheory.Category.opposite.{u1, u2} C _inst_1) Type.{u1} CategoryTheory.types.{u1}) (CategoryTheory.yoneda.{u1, u2} C _inst_1) F)
+Case conversion may be inaccurate. Consider using '#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalenceₓ'. -/
 /-- The equivalence `F.elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
 @[simps]
 def costructuredArrowYonedaEquivalence (F : Cᵒᵖ ⥤ Type v) :
     F.Elementsᵒᵖ ≌ CostructuredArrow yoneda F :=
   Equivalence.mk (toCostructuredArrow F) (fromCostructuredArrow F).rightOp
     (NatIso.op (eqToIso (from_toCostructuredArrow_eq F))) (eqToIso <| to_fromCostructuredArrow_eq F)
-#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.categoryOfElements.costructuredArrowYonedaEquivalence
+#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence
 
+#print CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality /-
 /-- The equivalence `(-.elements)ᵒᵖ ≅ (yoneda, -)` of is actually a natural isomorphism of functors.
 -/
 theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤ Type v} (α : F₁ ⟶ F₂) :
@@ -307,7 +380,8 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
       cases H
       rfl
     simp [this]
-#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.categoryOfElements.costructuredArrow_yoneda_equivalence_naturality
+#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
+-/
 
 end CategoryOfElements
 
Diff
@@ -204,7 +204,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
   map X Y f :=
     ⟨f.unop.1.op,
       by
-      convert (congr_fun ((unop X).Hom.naturality f.unop.left.op) (𝟙 _)).symm
+      convert(congr_fun ((unop X).Hom.naturality f.unop.left.op) (𝟙 _)).symm
       simp only [Equiv.toFun_as_coe, Quiver.Hom.unop_op, yoneda_equiv_apply, types_comp_apply,
         category.comp_id, yoneda_obj_map]
       have : yoneda.map f.unop.left ≫ (unop X).Hom = (unop Y).Hom :=
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 
 ! This file was ported from Lean 3 source module category_theory.elements
-! leanprover-community/mathlib commit 14b69e9f3c16630440a2cbd46f1ddad0d561dee7
+! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -171,11 +171,7 @@ theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
 def structuredArrowEquivalence : F.Elements ≌ StructuredArrow PUnit F :=
   Equivalence.mk (toStructuredArrow F) (fromStructuredArrow F)
     (NatIso.ofComponents (fun X => eqToIso (by tidy)) (by tidy))
-    (NatIso.ofComponents
-      (fun X =>
-        { Hom := { right := 𝟙 _ }
-          inv := { right := 𝟙 _ } })
-      (by tidy))
+    (NatIso.ofComponents (fun X => StructuredArrow.isoMk (Iso.refl _) (by tidy)) (by tidy))
 #align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.categoryOfElements.structuredArrowEquivalence
 
 open Opposite

Changes in mathlib4

mathlib3
mathlib4
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
@@ -120,9 +120,9 @@ def π : F.Elements ⥤ C where
   map f := f.val
 #align category_theory.category_of_elements.π CategoryTheory.CategoryOfElements.π
 
-instance : Faithful (π F) where
+instance : (π F).Faithful where
 
-instance : ReflectsIsomorphisms (π F) where
+instance : (π F).ReflectsIsomorphisms where
   reflects {X Y} f h := ⟨⟨⟨inv ((π F).map f),
     by rw [← map_snd f, ← FunctorToTypes.map_comp_apply]; simp⟩, by aesop_cat⟩⟩
 
feat: some missing API for the category of elements (#11483)

The most significant change is the introduction of the simp lemma map_snd.

Diff
@@ -83,6 +83,10 @@ theorem id_val {F : C ⥤ Type w} {p : F.Elements} : (𝟙 p : p ⟶ p).val = 
   rfl
 #align category_theory.category_of_elements.id_val CategoryTheory.CategoryOfElements.id_val
 
+@[simp]
+theorem map_snd {F : C ⥤ Type w} {p q : F.Elements} (f : p ⟶ q) : (F.map f.val) p.2 = q.2 :=
+  f.property
+
 end CategoryOfElements
 
 instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G ⥤ Type w) :
@@ -116,13 +120,19 @@ def π : F.Elements ⥤ C where
   map f := f.val
 #align category_theory.category_of_elements.π CategoryTheory.CategoryOfElements.π
 
+instance : Faithful (π F) where
+
+instance : ReflectsIsomorphisms (π F) where
+  reflects {X Y} f h := ⟨⟨⟨inv ((π F).map f),
+    by rw [← map_snd f, ← FunctorToTypes.map_comp_apply]; simp⟩, by aesop_cat⟩⟩
+
 /-- A natural transformation between functors induces a functor between the categories of elements.
 -/
 @[simps]
 def map {F₁ F₂ : C ⥤ Type w} (α : F₁ ⟶ F₂) : F₁.Elements ⥤ F₂.Elements
     where
   obj t := ⟨t.1, α.app t.1 t.2⟩
-  map {t₁ t₂} k := ⟨k.1, by simpa [← k.2] using (FunctorToTypes.naturality _ _ α k.1 t₁.2).symm⟩
+  map {t₁ t₂} k := ⟨k.1, by simpa [← map_snd] using (FunctorToTypes.naturality _ _ α k.1 t₁.2).symm⟩
 #align category_theory.category_of_elements.map CategoryTheory.CategoryOfElements.map
 
 @[simp]
@@ -276,6 +286,18 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
   · simp [autoParam]
 #align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
 
+/-- The equivalence `F.elementsᵒᵖ ≌ (yoneda, F)` is compatible with the forgetful functors. -/
+@[simps!]
+def costructuredArrowYonedaEquivalenceFunctorProj (F : Cᵒᵖ ⥤ Type v) :
+    (costructuredArrowYonedaEquivalence F).functor ⋙ CostructuredArrow.proj _ _ ≅ (π F).leftOp :=
+  Iso.refl _
+
+/-- The equivalence `F.elementsᵒᵖ ≌ (yoneda, F)` is compatible with the forgetful functors. -/
+@[simps!]
+def costructuredArrowYonedaEquivalenceInverseπ (F : Cᵒᵖ ⥤ Type v) :
+    (costructuredArrowYonedaEquivalence F).inverse ⋙ (π F).leftOp ≅ CostructuredArrow.proj _ _ :=
+  Iso.refl _
+
 end CategoryOfElements
 
 end CategoryTheory
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -47,7 +47,7 @@ def Functor.Elements (F : C ⥤ Type w) :=
   Σc : C, F.obj c
 #align category_theory.functor.elements CategoryTheory.Functor.Elements
 
--- porting note: added because Sigma.ext would be triggered automatically
+-- Porting note: added because Sigma.ext would be triggered automatically
 lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst = y.fst)
     (h₂ : F.map (eqToHom h₁) x.snd = y.snd) : x = y := by
   cases x
refactor: create folder CategoryTheory/Comma (#10108)
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
 -/
-import Mathlib.CategoryTheory.StructuredArrow
+import Mathlib.CategoryTheory.Comma.StructuredArrow
 import Mathlib.CategoryTheory.Groupoid
 import Mathlib.CategoryTheory.PUnit
 
chore: bump to v4.3.0-rc2 (#8366)

PR contents

This is the supremum of

along with some minor fixes from failures on nightly-testing as Mathlib master is merged into it.

Note that some PRs for changes that are already compatible with the current toolchain and will be necessary have already been split out: #8380.

I am hopeful that in future we will be able to progressively merge adaptation PRs into a bump/v4.X.0 branch, so we never end up with a "big merge" like this. However one of these adaptation PRs (#8056) predates my new scheme for combined CI, and it wasn't possible to keep that PR viable in the meantime.

Lean PRs involved in this bump

In particular this includes adjustments for the Lean PRs

leanprover/lean4#2778

We can get rid of all the

local macro_rules | `($x ^ $y) => `(HPow.hPow $x $y) -- Porting note: See issue [lean4#2220](https://github.com/leanprover/lean4/pull/2220)

macros across Mathlib (and in any projects that want to write natural number powers of reals).

leanprover/lean4#2722

Changes the default behaviour of simp to (config := {decide := false}). This makes simp (and consequentially norm_num) less powerful, but also more consistent, and less likely to blow up in long failures. This requires a variety of changes: changing some previously by simp or norm_num to decide or rfl, or adding (config := {decide := true}).

leanprover/lean4#2783

This changed the behaviour of simp so that simp [f] will only unfold "fully applied" occurrences of f. The old behaviour can be recovered with simp (config := { unfoldPartialApp := true }). We may in future add a syntax for this, e.g. simp [!f]; please provide feedback! In the meantime, we have made the following changes:

  • switching to using explicit lemmas that have the intended level of application
  • (config := { unfoldPartialApp := true }) in some places, to recover the old behaviour
  • Using @[eqns] to manually adjust the equation lemmas for a particular definition, recovering the old behaviour just for that definition. See #8371, where we do this for Function.comp and Function.flip.

This change in Lean may require further changes down the line (e.g. adding the !f syntax, and/or upstreaming the special treatment for Function.comp and Function.flip, and/or removing this special treatment). Please keep an open and skeptical mind about these changes!

Co-authored-by: leanprover-community-mathlib4-bot <leanprover-community-mathlib4-bot@users.noreply.github.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Mauricio Collares <mauricio@collares.org>

Diff
@@ -273,7 +273,7 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
     congr
     ext _ f
     simpa using congr_fun (α.naturality f.op).symm (unop X).snd
-  · aesop
+  · simp [autoParam]
 #align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
 
 end CategoryOfElements
chore: fix porting note about Comma.eqToHom_right by adding simp lemmas (#7884)

There are two things going on here: the change in behaviour in simp (currently, but not for much longer, requiring zeta := false), and some defeq abuse that I'm resolving here by adding additional simp lemmas.

This will slightly clarify one of the changes required in #7847

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

Diff
@@ -246,9 +246,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     ext x f
     convert congr_fun (X_hom.naturality f.op).symm (𝟙 X_left)
     simp
-  · intro X Y f
-    ext
-    simp [CostructuredArrow.eqToHom_left]
+  · aesop
 #align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
 
 /-- The equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
@@ -275,9 +273,7 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
     congr
     ext _ f
     simpa using congr_fun (α.naturality f.op).symm (unop X).snd
-  · intro X Y f
-    ext
-    simp [CostructuredArrow.eqToHom_left]
+  · aesop
 #align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
 
 end CategoryOfElements
chore: Make groupoidOfElements use Groupoid.inv instead of CategoryTheory.inv (#7616)

It seemed suspicious to me that the definition of the action groupoid was noncomputable, since the definition is so explicit. It turns out CategoryTheory.groupoidOfElements was marked noncomputable because its definition of Groupoid.inv used CategoryTheory.inv to choose an inverse. This seems like it was probably just a namespace issue, and the author intended to use Groupoid.inv (which is computable). It seems like this definition would be a lot easier to work with in practice.

Diff
@@ -85,14 +85,14 @@ theorem id_val {F : C ⥤ Type w} {p : F.Elements} : (𝟙 p : p ⟶ p).val = 
 
 end CategoryOfElements
 
-noncomputable instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G ⥤ Type w) :
+instance groupoidOfElements {G : Type u} [Groupoid.{v} G] (F : G ⥤ Type w) :
     Groupoid F.Elements
     where
   inv {p q} f :=
-    ⟨inv f.val,
+    ⟨Groupoid.inv f.val,
       calc
-        F.map (inv f.val) q.2 = F.map (inv f.val) (F.map f.val p.2) := by rw [f.2]
-        _ = (F.map f.val ≫ F.map (inv f.val)) p.2 := rfl
+        F.map (Groupoid.inv f.val) q.2 = F.map (Groupoid.inv f.val) (F.map f.val p.2) := by rw [f.2]
+        _ = (F.map f.val ≫ F.map (Groupoid.inv f.val)) p.2 := rfl
         _ = p.2 := by
           rw [← F.map_comp]
           simp
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,16 +2,13 @@
 Copyright (c) 2019 Scott Morrison. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.elements
-! 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.Groupoid
 import Mathlib.CategoryTheory.PUnit
 
+#align_import category_theory.elements from "leanprover-community/mathlib"@"8a318021995877a44630c898d0b2bc376fceef3b"
+
 /-!
 # The category of elements
 
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
@@ -64,7 +64,7 @@ lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst =
  -/
 instance categoryOfElements (F : C ⥤ Type w) : Category.{v} F.Elements where
   Hom p q := { f : p.1 ⟶ q.1 // (F.map f) p.2 = q.2 }
-  id p := ⟨𝟙 p.1, by aesop_cat⟩ -- porting note: was `obviously`
+  id p := ⟨𝟙 p.1, by aesop_cat⟩
   comp {X Y Z} f g := ⟨f.val ≫ g.val, by simp [f.2, g.2]⟩
 #align category_theory.category_of_elements CategoryTheory.categoryOfElements
 
@@ -176,9 +176,8 @@ theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
   unitIso_inv counitIso_hom counitIso_inv]
 def structuredArrowEquivalence : F.Elements ≌ StructuredArrow PUnit F :=
   Equivalence.mk (toStructuredArrow F) (fromStructuredArrow F)
-    (NatIso.ofComponents (fun X => eqToIso (by aesop_cat)) (by aesop_cat))
-    (NatIso.ofComponents (fun X => StructuredArrow.isoMk (Iso.refl _)
-    (by aesop_cat)) (by aesop_cat))
+    (NatIso.ofComponents fun X => eqToIso (by aesop_cat))
+    (NatIso.ofComponents fun X => StructuredArrow.isoMk (Iso.refl _))
 #align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalence
 
 open Opposite
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -50,7 +50,7 @@ def Functor.Elements (F : C ⥤ Type w) :=
   Σc : C, F.obj c
 #align category_theory.functor.elements CategoryTheory.Functor.Elements
 
--- porting note: added because Sigma.ext would be trigged automatically
+-- porting note: added because Sigma.ext would be triggered automatically
 lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst = y.fst)
     (h₂ : F.map (eqToHom h₁) x.snd = y.snd) : x = y := by
   cases x
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
@@ -137,7 +137,6 @@ theorem map_π {F₁ F₂ : C ⥤ Type w} (α : F₁ ⟶ F₂) : map α ⋙ π F
 def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F where
   obj X := StructuredArrow.mk fun _ => X.2
   map {X Y} f := StructuredArrow.homMk f.val (by funext; simp [f.2])
-
 #align category_theory.category_of_elements.to_structured_arrow CategoryTheory.CategoryOfElements.toStructuredArrow
 
 @[simp]
feat: port CategoryTheory.Limits.Presheaf (#3208)

Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr> Co-authored-by: Adam Topaz <github@adamtopaz.com> Co-authored-by: Newell Jensen <newell.jensen@gmail.com> Co-authored-by: Scott Morrison <scott@tqft.net> Co-authored-by: Gabriel Ebner <gebner@gebner.org> Co-authored-by: Ruben Van de Velde <65514131+Ruben-VandeVelde@users.noreply.github.com> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Patrick Massot <patrickmassot@free.fr> Co-authored-by: Wrenna Robson <e0191785@u.nus.edu> Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch> Co-authored-by: Floris van Doorn <fpvdoorn@gmail.com> Co-authored-by: Henrik Böving <hargonix@gmail.com> Co-authored-by: Pol_tta <pol_tta@outlook.jp>

Diff
@@ -52,7 +52,7 @@ def Functor.Elements (F : C ⥤ Type w) :=
 
 -- porting note: added because Sigma.ext would be trigged automatically
 lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst = y.fst)
-  (h₂ : F.map (eqToHom h₁) x.snd = y.snd) : x = y := by
+    (h₂ : F.map (eqToHom h₁) x.snd = y.snd) : x = y := by
   cases x
   cases y
   cases h₁
@@ -62,8 +62,7 @@ lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst =
 /-- The category structure on `F.Elements`, for `F : C ⥤ Type`.
     A morphism `(X, x) ⟶ (Y, y)` is a morphism `f : X ⟶ Y` in `C`, so `F.map f` takes `x` to `y`.
  -/
-instance categoryOfElements (F : C ⥤ Type w) : Category.{v} F.Elements
-    where
+instance categoryOfElements (F : C ⥤ Type w) : Category.{v} F.Elements where
   Hom p q := { f : p.1 ⟶ q.1 // (F.map f) p.2 = q.2 }
   id p := ⟨𝟙 p.1, by aesop_cat⟩ -- porting note: was `obviously`
   comp {X Y Z} f g := ⟨f.val ≫ g.val, by simp [f.2, g.2]⟩
@@ -139,8 +138,7 @@ def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F where
   obj X := StructuredArrow.mk fun _ => X.2
   map {X Y} f := StructuredArrow.homMk f.val (by funext; simp [f.2])
 
-#align category_theory.category_of_elements.to_structured_arrow
-  CategoryTheory.CategoryOfElements.toStructuredArrow
+#align category_theory.category_of_elements.to_structured_arrow CategoryTheory.CategoryOfElements.toStructuredArrow
 
 @[simp]
 theorem toStructuredArrow_obj (X) :
@@ -149,14 +147,12 @@ theorem toStructuredArrow_obj (X) :
         right := X.1
         hom := fun _ => X.2 } :=
   rfl
-#align category_theory.category_of_elements.to_structured_arrow_obj
-  CategoryTheory.CategoryOfElements.toStructuredArrow_obj
+#align category_theory.category_of_elements.to_structured_arrow_obj CategoryTheory.CategoryOfElements.toStructuredArrow_obj
 
 @[simp]
 theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).right = f.val :=
   rfl
-#align category_theory.category_of_elements.to_comma_map_right
-  CategoryTheory.CategoryOfElements.to_comma_map_right
+#align category_theory.category_of_elements.to_comma_map_right CategoryTheory.CategoryOfElements.to_comma_map_right
 
 /-- The reverse direction of the equivalence `F.Elements ≅ (*, F)`. -/
 def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements where
@@ -173,8 +169,7 @@ theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
     (fromStructuredArrow F).map f = ⟨f.right, congr_fun f.w.symm PUnit.unit⟩ :=
   rfl
-#align category_theory.category_of_elements.from_structured_arrow_map
-  CategoryTheory.CategoryOfElements.fromStructuredArrow_map
+#align category_theory.category_of_elements.from_structured_arrow_map CategoryTheory.CategoryOfElements.fromStructuredArrow_map
 
 /-- The equivalence between the category of elements `F.Elements`
     and the comma category `(*, F)`. -/
@@ -185,8 +180,7 @@ def structuredArrowEquivalence : F.Elements ≌ StructuredArrow PUnit F :=
     (NatIso.ofComponents (fun X => eqToIso (by aesop_cat)) (by aesop_cat))
     (NatIso.ofComponents (fun X => StructuredArrow.isoMk (Iso.refl _)
     (by aesop_cat)) (by aesop_cat))
-#align category_theory.category_of_elements.structured_arrow_equivalence
-  CategoryTheory.CategoryOfElements.structuredArrowEquivalence
+#align category_theory.category_of_elements.structured_arrow_equivalence CategoryTheory.CategoryOfElements.structuredArrowEquivalence
 
 open Opposite
 
@@ -221,8 +215,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
       erw [← this]
       simp only [yoneda_map_app, FunctorToTypes.comp]
       erw [Category.id_comp]⟩
-#align category_theory.category_of_elements.from_costructured_arrow
-  CategoryTheory.CategoryOfElements.fromCostructuredArrow
+#align category_theory.category_of_elements.from_costructured_arrow CategoryTheory.CategoryOfElements.fromCostructuredArrow
 
 @[simp]
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
@@ -263,16 +256,18 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     simp [CostructuredArrow.eqToHom_left]
 #align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
 
-set_option maxHeartbeats 400000 in
 /-- The equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
-@[simps! functor_obj functor_map inverse_obj inverse_map unitIso_hom
-  unitIso_inv counitIso_hom counitIso_inv]
+@[simps! functor_obj functor_map inverse_obj inverse_map unitIso_inv counitIso_hom counitIso_inv]
 def costructuredArrowYonedaEquivalence (F : Cᵒᵖ ⥤ Type v) :
     F.Elementsᵒᵖ ≌ CostructuredArrow yoneda F :=
   Equivalence.mk (toCostructuredArrow F) (fromCostructuredArrow F).rightOp
     (NatIso.op (eqToIso (from_toCostructuredArrow_eq F))) (eqToIso <| to_fromCostructuredArrow_eq F)
-#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence
-  CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence
+#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence CategoryTheory.CategoryOfElements.costructuredArrowYonedaEquivalence
+
+-- Porting note:
+-- Running `@[simps! unitIso_hom]` is mysteriously slow.
+-- We separate it out to avoid needing to increase the maxHeartbeats.
+attribute [simps! unitIso_hom] costructuredArrowYonedaEquivalence
 
 /-- The equivalence `(-.Elements)ᵒᵖ ≅ (yoneda, -)` of is actually a natural isomorphism of functors.
 -/
@@ -288,8 +283,7 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
   · intro X Y f
     ext
     simp [CostructuredArrow.eqToHom_left]
-#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality
-  CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
+#align category_theory.category_of_elements.costructured_arrow_yoneda_equivalence_naturality CategoryTheory.CategoryOfElements.costructuredArrow_yoneda_equivalence_naturality
 
 end CategoryOfElements
 
feat : add ext lemma for Type u (#3593)

This lemma, which was not needed in mathlib3, simplifies several proofs (back to the state they were in in mathlib3).

Note on what's going on here: Lean 3 ext would fall back on "try all ext lemmas" if it failed, and thus it could see through lots of definitional equalities. Lean 4 ext doesn't do this (because it's inefficient) and so we need to add more ext lemmas in order to recover Lean 3 functionality.

Diff
@@ -200,8 +200,7 @@ def toCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : F.Elementsᵒᵖ ⥤ Costruct
   map f := by
     fapply CostructuredArrow.homMk
     · exact f.unop.val.unop
-    · ext Z
-      funext y
+    · ext Z y
       dsimp
       simp only [FunctorToTypes.map_comp_apply, ← f.unop.2]
 #align category_theory.category_of_elements.to_costructured_arrow CategoryTheory.CategoryOfElements.toCostructuredArrow
@@ -256,8 +255,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     simp only [Functor.id_obj, Functor.rightOp_obj, toCostructuredArrow_obj, Functor.comp_obj,
       CostructuredArrow.mk]
     congr
-    ext x
-    funext f
+    ext x f
     convert congr_fun (X_hom.naturality f.op).symm (𝟙 X_left)
     simp
   · intro X Y f
@@ -285,8 +283,7 @@ theorem costructuredArrow_yoneda_equivalence_naturality {F₁ F₂ : Cᵒᵖ ⥤
     simp only [CostructuredArrow.map_mk, toCostructuredArrow_obj, Functor.op_obj,
       Functor.comp_obj]
     congr
-    ext
-    funext f
+    ext _ f
     simpa using congr_fun (α.naturality f.op).symm (unop X).snd
   · intro X Y f
     ext
chore: fix align linebreaks (#3299)

Result of running

find . -type f -name "*.lean" -exec sed -i -E 'N;s/^#align ([^[:space:]]+)\n *([^[:space:]]+)$/#align \1 \2/' {} \;

Some scripts depend on those statements being on one line. I think it is not important enough to have a special linter or github workflow for that, especially considering this is only needed during the port. I plan to just run this once in a while.

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

Diff
@@ -162,14 +162,12 @@ theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).r
 def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements where
   obj X := ⟨X.right, X.hom PUnit.unit⟩
   map f := ⟨f.right, congr_fun f.w.symm PUnit.unit⟩
-#align category_theory.category_of_elements.from_structured_arrow
-  CategoryTheory.CategoryOfElements.fromStructuredArrow
+#align category_theory.category_of_elements.from_structured_arrow CategoryTheory.CategoryOfElements.fromStructuredArrow
 
 @[simp]
 theorem fromStructuredArrow_obj (X) : (fromStructuredArrow F).obj X = ⟨X.right, X.hom PUnit.unit⟩ :=
   rfl
-#align category_theory.category_of_elements.from_structured_arrow_obj
-  CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
+#align category_theory.category_of_elements.from_structured_arrow_obj CategoryTheory.CategoryOfElements.fromStructuredArrow_obj
 
 @[simp]
 theorem fromStructuredArrow_map {X Y} (f : X ⟶ Y) :
@@ -206,8 +204,7 @@ def toCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : F.Elementsᵒᵖ ⥤ Costruct
       funext y
       dsimp
       simp only [FunctorToTypes.map_comp_apply, ← f.unop.2]
-#align category_theory.category_of_elements.to_costructured_arrow
-  CategoryTheory.CategoryOfElements.toCostructuredArrow
+#align category_theory.category_of_elements.to_costructured_arrow CategoryTheory.CategoryOfElements.toCostructuredArrow
 
 /-- The reverse direction of the equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)`,
 given by `CategoryTheory.yonedaEquiv`.
@@ -232,8 +229,7 @@ def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F
 theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoneda.obj X ⟶ F) :
     (fromCostructuredArrow F).obj (op (CostructuredArrow.mk f)) = ⟨op X, yonedaEquiv.1 f⟩ :=
   rfl
-#align category_theory.category_of_elements.from_costructured_arrow_obj_mk
-  CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk
+#align category_theory.category_of_elements.from_costructured_arrow_obj_mk CategoryTheory.CategoryOfElements.fromCostructuredArrow_obj_mk
 
 /-- The unit of the equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)` is indeed iso. -/
 theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
@@ -248,8 +244,7 @@ theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
       simp
     ext
     simp [this]
-#align category_theory.category_of_elements.from_to_costructured_arrow_eq
-  CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq
+#align category_theory.category_of_elements.from_to_costructured_arrow_eq CategoryTheory.CategoryOfElements.from_toCostructuredArrow_eq
 
 /-- The counit of the equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)` is indeed iso. -/
 theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
@@ -268,8 +263,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
   · intro X Y f
     ext
     simp [CostructuredArrow.eqToHom_left]
-#align category_theory.category_of_elements.to_from_costructured_arrow_eq
-  CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
+#align category_theory.category_of_elements.to_from_costructured_arrow_eq CategoryTheory.CategoryOfElements.to_fromCostructuredArrow_eq
 
 set_option maxHeartbeats 400000 in
 /-- The equivalence `F.Elementsᵒᵖ ≅ (yoneda, F)` given by yoneda lemma. -/
chore: tidy various files (#3233)
Diff
@@ -56,7 +56,7 @@ lemma Functor.Elements.ext {F : C ⥤ Type w} (x y : F.Elements) (h₁ : x.fst =
   cases x
   cases y
   cases h₁
-  simp at h₂
+  simp only [eqToHom_refl, FunctorToTypes.map_id_apply] at h₂
   simp [h₂]
 
 /-- The category structure on `F.Elements`, for `F : C ⥤ Type`.
@@ -135,8 +135,7 @@ theorem map_π {F₁ F₂ : C ⥤ Type w} (α : F₁ ⟶ F₂) : map α ⋙ π F
 #align category_theory.category_of_elements.map_π CategoryTheory.CategoryOfElements.map_π
 
 /-- The forward direction of the equivalence `F.Elements ≅ (*, F)`. -/
-def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F
-    where
+def toStructuredArrow : F.Elements ⥤ StructuredArrow PUnit F where
   obj X := StructuredArrow.mk fun _ => X.2
   map {X Y} f := StructuredArrow.homMk f.val (by funext; simp [f.2])
 
@@ -160,8 +159,7 @@ theorem to_comma_map_right {X Y} (f : X ⟶ Y) : ((toStructuredArrow F).map f).r
   CategoryTheory.CategoryOfElements.to_comma_map_right
 
 /-- The reverse direction of the equivalence `F.Elements ≅ (*, F)`. -/
-def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements
-    where
+def fromStructuredArrow : StructuredArrow PUnit F ⥤ F.Elements where
   obj X := ⟨X.right, X.hom PUnit.unit⟩
   map f := ⟨f.right, congr_fun f.w.symm PUnit.unit⟩
 #align category_theory.category_of_elements.from_structured_arrow
@@ -203,8 +201,8 @@ def toCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : F.Elementsᵒᵖ ⥤ Costruct
   obj X := CostructuredArrow.mk ((yonedaSections (unop (unop X).fst) F).inv (ULift.up (unop X).2))
   map f := by
     fapply CostructuredArrow.homMk
-    . exact f.unop.val.unop
-    . ext Z
+    · exact f.unop.val.unop
+    · ext Z
       funext y
       dsimp
       simp only [FunctorToTypes.map_comp_apply, ← f.unop.2]
@@ -215,16 +213,14 @@ def toCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : F.Elementsᵒᵖ ⥤ Costruct
 given by `CategoryTheory.yonedaEquiv`.
 -/
 @[simps]
-def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F)ᵒᵖ ⥤ F.Elements
-    where
+def fromCostructuredArrow (F : Cᵒᵖ ⥤ Type v) : (CostructuredArrow yoneda F)ᵒᵖ ⥤ F.Elements where
   obj X := ⟨op (unop X).1, yonedaEquiv.1 (unop X).3⟩
   map {X Y} f :=
     ⟨f.unop.1.op, by
       convert (congr_fun ((unop X).hom.naturality f.unop.left.op) (𝟙 _)).symm
       simp only [Equiv.toFun_as_coe, Quiver.Hom.unop_op, yonedaEquiv_apply, types_comp_apply,
         Category.comp_id, yoneda_obj_map]
-      have : yoneda.map f.unop.left ≫ (unop X).hom = (unop Y).hom :=
-        by
+      have : yoneda.map f.unop.left ≫ (unop X).hom = (unop Y).hom := by
         convert f.unop.3
       erw [← this]
       simp only [yoneda_map_app, FunctorToTypes.comp]
@@ -243,9 +239,9 @@ theorem fromCostructuredArrow_obj_mk (F : Cᵒᵖ ⥤ Type v) {X : C} (f : yoned
 theorem from_toCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     (toCostructuredArrow F).rightOp ⋙ fromCostructuredArrow F = 𝟭 _ := by
   refine' Functor.ext _ _
-  . intro X
+  · intro X
     exact Functor.Elements.ext _ _ rfl (by simp [yonedaEquiv])
-  . intro X Y f
+  · intro X Y f
     have : ∀ {a b : F.Elements} (H : a = b),
         (eqToHom H).1 = eqToHom (show a.fst = b.fst by cases H; rfl) := by
       rintro _ _ rfl
@@ -269,7 +265,7 @@ theorem to_fromCostructuredArrow_eq (F : Cᵒᵖ ⥤ Type v) :
     funext f
     convert congr_fun (X_hom.naturality f.op).symm (𝟙 X_left)
     simp
-  . intro X Y f
+  · intro X Y f
     ext
     simp [CostructuredArrow.eqToHom_left]
 #align category_theory.category_of_elements.to_from_costructured_arrow_eq
feat: port CategoryTheory.Elements (#2815)

Co-authored-by: Calvin Lee <calvins.lee@utah.edu> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Dependencies 106

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

All dependencies are ported!