category_theory.elements
⟷
Mathlib.CategoryTheory.Elements
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.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -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 :
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/7e5137f579de09a059a5ce98f364a04e221aabf0
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/5f25c089cb34db4db112556f23c50d12da81b297
@@ -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;
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/49b7f94aab3a3bdca1f9f34c5d818afb253b3993
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/3cacc945118c8c637d89950af01da78307f59325
@@ -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.
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce11c3c2a285bbe6937e26d9792fda4e51f3fe1a
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce7e9d53d4bbc38065db3b595cd5bd73c323bc1d
@@ -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 :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/22131150f88a2d125713ffa0f4693e3355b1eb49
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -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⟩⟩
The most significant change is the introduction of the simp lemma map_snd
.
@@ -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
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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
@@ -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
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.
In particular this includes adjustments for the Lean PRs
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).
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})
.
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:
(config := { unfoldPartialApp := true })
in some places, to recover the old behaviour@[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>
@@ -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
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>
@@ -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
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.
@@ -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
@@ -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
@@ -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
I ran codespell Mathlib
and got tired halfway through the suggestions.
@@ -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
This PR fixes two things:
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.#align
statements. (This was needed for a script I wrote for #3630.)@@ -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]
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>
@@ -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
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.
@@ -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
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>
@@ -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. -/
@@ -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
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>
All dependencies are ported!