category_theory.over
⟷
Mathlib.CategoryTheory.Comma.Over
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
@@ -233,7 +233,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
end
#print CategoryTheory.Over.forget_reflects_iso /-
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
+instance forget_reflects_iso : CategoryTheory.Functor.ReflectsIsomorphisms (forget X)
where reflects Y Z f t :=
⟨⟨over.hom_mk (inv ((forget X).map f))
((as_iso ((forget X).map f)).inv_comp_eq.2 (over.w f).symm),
@@ -242,7 +242,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
-/
#print CategoryTheory.Over.forget_faithful /-
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : CategoryTheory.Functor.Faithful (forget X) where
#align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
-/
@@ -546,7 +546,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
end
#print CategoryTheory.Under.forget_reflects_iso /-
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
+instance forget_reflects_iso : CategoryTheory.Functor.ReflectsIsomorphisms (forget X)
where reflects Y Z f t :=
⟨⟨under.hom_mk (inv ((under.forget X).map f)) ((is_iso.comp_inv_eq _).2 (under.w f).symm), by
tidy⟩⟩
@@ -554,7 +554,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
-/
#print CategoryTheory.Under.forget_faithful /-
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : CategoryTheory.Functor.Faithful (forget X) where
#align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,9 +3,9 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
-/
-import CategoryTheory.StructuredArrow
-import CategoryTheory.Punit
-import CategoryTheory.Functor.ReflectsIsomorphisms
+import CategoryTheory.Comma.StructuredArrow
+import CategoryTheory.PUnit
+import CategoryTheory.Functor.ReflectsIso
import CategoryTheory.Functor.EpiMono
#align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,10 +3,10 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
-/
-import Mathbin.CategoryTheory.StructuredArrow
-import Mathbin.CategoryTheory.Punit
-import Mathbin.CategoryTheory.Functor.ReflectsIsomorphisms
-import Mathbin.CategoryTheory.Functor.EpiMono
+import CategoryTheory.StructuredArrow
+import CategoryTheory.Punit
+import CategoryTheory.Functor.ReflectsIsomorphisms
+import CategoryTheory.Functor.EpiMono
#align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,17 +2,14 @@
Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.StructuredArrow
import Mathbin.CategoryTheory.Punit
import Mathbin.CategoryTheory.Functor.ReflectsIsomorphisms
import Mathbin.CategoryTheory.Functor.EpiMono
+#align_import category_theory.over from "leanprover-community/mathlib"@"f47581155c818e6361af4e4fda60d27d020c226b"
+
/-!
# Over and under categories
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -91,9 +91,11 @@ theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left
#align category_theory.over.comp_left CategoryTheory.Over.comp_left
-/
+#print CategoryTheory.Over.w /-
@[simp, reassoc]
theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
#align category_theory.over.w CategoryTheory.Over.w
+-/
#print CategoryTheory.Over.mk /-
/-- To give an object in the over category, it suffices to give a morphism with codomain `X`. -/
@@ -103,29 +105,36 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
#align category_theory.over.mk CategoryTheory.Over.mk
-/
+#print CategoryTheory.Over.coeFromHom /-
/-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
be a global instance, but it is sometimes useful. -/
def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
+-/
section
attribute [local instance] coe_from_hom
+#print CategoryTheory.Over.coe_hom /-
@[simp]
theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
rfl
#align category_theory.over.coe_hom CategoryTheory.Over.coe_hom
+-/
end
+#print CategoryTheory.Over.homMk /-
/-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
triangle. -/
@[simps]
def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by obviously) : U ⟶ V :=
CostructuredArrow.homMk f w
#align category_theory.over.hom_mk CategoryTheory.Over.homMk
+-/
+#print CategoryTheory.Over.isoMk /-
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
@@ -134,6 +143,7 @@ def isoMk {f g : Over X} (hl : f.left ≅ g.left) (hw : hl.Hom ≫ g.Hom = f.Hom
f ≅ g :=
CostructuredArrow.isoMk hl hw
#align category_theory.over.iso_mk CategoryTheory.Over.isoMk
+-/
section
@@ -151,15 +161,19 @@ def forget : Over X ⥤ T :=
end
+#print CategoryTheory.Over.forget_obj /-
@[simp]
theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
rfl
#align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
+-/
+#print CategoryTheory.Over.forget_map /-
@[simp]
theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
rfl
#align category_theory.over.forget_map CategoryTheory.Over.forget_map
+-/
#print CategoryTheory.Over.forgetCocone /-
/-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
@@ -184,20 +198,26 @@ section
variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
+#print CategoryTheory.Over.map_obj_left /-
@[simp]
theorem map_obj_left : ((map f).obj U).left = U.left :=
rfl
#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
+-/
+#print CategoryTheory.Over.map_obj_hom /-
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
rfl
#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
+-/
+#print CategoryTheory.Over.map_map_left /-
@[simp]
theorem map_map_left : ((map f).map g).left = g.left :=
rfl
#align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
+-/
#print CategoryTheory.Over.mapId /-
/-- Mapping by the identity morphism is just the identity functor. -/
@@ -296,6 +316,7 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
#align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
-/
+#print CategoryTheory.Over.iteratedSliceEquiv /-
/-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
@[simps]
def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -309,6 +330,7 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g => by ext; dsimp;
simp
#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
+-/
#print CategoryTheory.Over.iteratedSliceForward_forget /-
theorem iteratedSliceForward_forget :
@@ -330,6 +352,7 @@ section
variable {D : Type u₂} [Category.{v₂} D]
+#print CategoryTheory.Over.post /-
/-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
@[simps]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -337,6 +360,7 @@ def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
obj Y := mk <| F.map Y.Hom
map Y₁ Y₂ f := Over.homMk (F.map f.left) (by tidy <;> erw [← F.map_comp, w])
#align category_theory.over.post CategoryTheory.Over.post
+-/
end
@@ -392,9 +416,11 @@ theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).rig
#align category_theory.under.comp_right CategoryTheory.Under.comp_right
-/
+#print CategoryTheory.Under.w /-
@[simp, reassoc]
theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
#align category_theory.under.w CategoryTheory.Under.w
+-/
#print CategoryTheory.Under.mk /-
/-- To give an object in the under category, it suffices to give an arrow with domain `X`. -/
@@ -404,31 +430,39 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
#align category_theory.under.mk CategoryTheory.Under.mk
-/
+#print CategoryTheory.Under.homMk /-
/-- To give a morphism in the under category, it suffices to give a morphism fitting in a
commutative triangle. -/
@[simps]
def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom := by obviously) : U ⟶ V :=
StructuredArrow.homMk f w
#align category_theory.under.hom_mk CategoryTheory.Under.homMk
+-/
+#print CategoryTheory.Under.isoMk /-
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) : f ≅ g :=
StructuredArrow.isoMk hr hw
#align category_theory.under.iso_mk CategoryTheory.Under.isoMk
+-/
+#print CategoryTheory.Under.isoMk_hom_right /-
@[simp]
theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).Hom.right = hr.Hom :=
rfl
#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
+-/
+#print CategoryTheory.Under.isoMk_inv_right /-
@[simp]
theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).inv.right = hr.inv :=
rfl
#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_right
+-/
section
@@ -443,15 +477,19 @@ def forget : Under X ⥤ T :=
end
+#print CategoryTheory.Under.forget_obj /-
@[simp]
theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
rfl
#align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
+-/
+#print CategoryTheory.Under.forget_map /-
@[simp]
theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
rfl
#align category_theory.under.forget_map CategoryTheory.Under.forget_map
+-/
#print CategoryTheory.Under.forgetCone /-
/-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
@@ -473,20 +511,26 @@ section
variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
+#print CategoryTheory.Under.map_obj_right /-
@[simp]
theorem map_obj_right : ((map f).obj U).right = U.right :=
rfl
#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
+-/
+#print CategoryTheory.Under.map_obj_hom /-
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
rfl
#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
+-/
+#print CategoryTheory.Under.map_map_right /-
@[simp]
theorem map_map_right : ((map f).map g).right = g.right :=
rfl
#align category_theory.under.map_map_right CategoryTheory.Under.map_map_right
+-/
#print CategoryTheory.Under.mapId /-
/-- Mapping by the identity morphism is just the identity functor. -/
@@ -564,6 +608,7 @@ section
variable {D : Type u₂} [Category.{v₂} D]
+#print CategoryTheory.Under.post /-
/-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
@[simps]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
@@ -571,6 +616,7 @@ def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
obj Y := mk <| F.map Y.Hom
map Y₁ Y₂ f := Under.homMk (F.map f.right) (by tidy <;> erw [← F.map_comp, w])
#align category_theory.under.post CategoryTheory.Under.post
+-/
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -45,7 +45,8 @@ triangles.
See <https://stacks.math.columbia.edu/tag/001G>.
-/
def Over (X : T) :=
- CostructuredArrow (𝟭 T) X deriving Category
+ CostructuredArrow (𝟭 T) X
+deriving Category
#align category_theory.over CategoryTheory.Over
-/
@@ -345,7 +346,8 @@ end Over
/-- The under category has as objects arrows with domain `X` and as morphisms commutative
triangles. -/
def Under (X : T) :=
- StructuredArrow X (𝟭 T)deriving Category
+ StructuredArrow X (𝟭 T)
+deriving Category
#align category_theory.under CategoryTheory.Under
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -90,12 +90,6 @@ theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left
#align category_theory.over.comp_left CategoryTheory.Over.comp_left
-/
-/- warning: category_theory.over.w -> CategoryTheory.Over.w is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
@[simp, reassoc]
theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
#align category_theory.over.w CategoryTheory.Over.w
@@ -108,12 +102,6 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
#align category_theory.over.mk CategoryTheory.Over.mk
-/
-/- warning: category_theory.over.coe_from_hom -> CategoryTheory.Over.coeFromHom is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, Coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, CoeOut.{succ u1, max (succ u2) (succ u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHomₓ'. -/
/-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
be a global instance, but it is sometimes useful. -/
def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
@@ -123,12 +111,6 @@ section
attribute [local instance] coe_from_hom
-/- warning: category_theory.over.coe_hom -> CategoryTheory.Over.coe_hom is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)) f
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)) f
-Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_hom CategoryTheory.Over.coe_homₓ'. -/
@[simp]
theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
rfl
@@ -136,9 +118,6 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
end
-/- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
/-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
triangle. -/
@[simps]
@@ -146,9 +125,6 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
CostructuredArrow.homMk f w
#align category_theory.over.hom_mk CategoryTheory.Over.homMk
-/- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
@@ -174,23 +150,11 @@ def forget : Over X ⥤ T :=
end
-/- warning: category_theory.over.forget_obj -> CategoryTheory.Over.forget_obj is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_obj CategoryTheory.Over.forget_objₓ'. -/
@[simp]
theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
rfl
#align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
-/- warning: category_theory.over.forget_map -> CategoryTheory.Over.forget_map is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_map CategoryTheory.Over.forget_mapₓ'. -/
@[simp]
theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
rfl
@@ -219,28 +183,16 @@ section
variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
-/- warning: category_theory.over.map_obj_left -> CategoryTheory.Over.map_obj_left is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_leftₓ'. -/
@[simp]
theorem map_obj_left : ((map f).obj U).left = U.left :=
rfl
#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
-/- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
rfl
#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
-/- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
@[simp]
theorem map_map_left : ((map f).map g).left = g.left :=
rfl
@@ -343,12 +295,6 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
#align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
-/
-/- warning: category_theory.over.iterated_slice_equiv -> CategoryTheory.Over.iteratedSliceEquiv is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.Over.category.{u2, u1} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
-Case conversion may be inaccurate. Consider using '#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquivₓ'. -/
/-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
@[simps]
def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -383,12 +329,6 @@ section
variable {D : Type u₂} [Category.{v₂} D]
-/- warning: category_theory.over.post -> CategoryTheory.Over.post is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.Over.category.{u3, u1} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Over.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
-but is expected to have type
- forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.over.post CategoryTheory.Over.postₓ'. -/
/-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
@[simps]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -450,12 +390,6 @@ theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).rig
#align category_theory.under.comp_right CategoryTheory.Under.comp_right
-/
-/- warning: category_theory.under.w -> CategoryTheory.Under.w is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
@[simp, reassoc]
theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
#align category_theory.under.w CategoryTheory.Under.w
@@ -468,9 +402,6 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
#align category_theory.under.mk CategoryTheory.Under.mk
-/
-/- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
/-- To give a morphism in the under category, it suffices to give a morphism fitting in a
commutative triangle. -/
@[simps]
@@ -478,9 +409,6 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
StructuredArrow.homMk f w
#align category_theory.under.hom_mk CategoryTheory.Under.homMk
-/- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
@@ -488,18 +416,12 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
StructuredArrow.isoMk hr hw
#align category_theory.under.iso_mk CategoryTheory.Under.isoMk
-/- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
@[simp]
theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).Hom.right = hr.Hom :=
rfl
#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
-/- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
@[simp]
theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).inv.right = hr.inv :=
@@ -519,23 +441,11 @@ def forget : Under X ⥤ T :=
end
-/- warning: category_theory.under.forget_obj -> CategoryTheory.Under.forget_obj is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_obj CategoryTheory.Under.forget_objₓ'. -/
@[simp]
theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
rfl
#align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
-/- warning: category_theory.under.forget_map -> CategoryTheory.Under.forget_map is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_map CategoryTheory.Under.forget_mapₓ'. -/
@[simp]
theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
rfl
@@ -561,28 +471,16 @@ section
variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
-/- warning: category_theory.under.map_obj_right -> CategoryTheory.Under.map_obj_right is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_rightₓ'. -/
@[simp]
theorem map_obj_right : ((map f).obj U).right = U.right :=
rfl
#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
-/- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
rfl
#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
-/- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
@[simp]
theorem map_map_right : ((map f).map g).right = g.right :=
rfl
@@ -664,12 +562,6 @@ section
variable {D : Type u₂} [Category.{v₂} D]
-/- warning: category_theory.under.post -> CategoryTheory.Under.post is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.Under.category.{u3, u1} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Under.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
-but is expected to have type
- forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u3} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryUnder.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.under.post CategoryTheory.Under.postₓ'. -/
/-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
@[simps]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -311,11 +311,7 @@ The converse of `category_theory.over.mono_of_mono_left`.
instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :=
by
refine' ⟨fun (Y : T) l m a => _⟩
- let l' : mk (m ≫ f.hom) ⟶ f :=
- hom_mk l
- (by
- dsimp
- rw [← over.w k, reassoc_of a])
+ let l' : mk (m ≫ f.hom) ⟶ f := hom_mk l (by dsimp; rw [← over.w k, reassoc_of a])
suffices l' = hom_mk m by apply congr_arg comma_morphism.left this
rw [← cancel_mono k]
ext
@@ -333,12 +329,7 @@ variable (f : Over X)
def iteratedSliceForward : Over f ⥤ Over f.left
where
obj α := Over.mk α.Hom.left
- map α β κ :=
- Over.homMk κ.left.left
- (by
- rw [autoParam_eq]
- rw [← over.w κ]
- rfl)
+ map α β κ := Over.homMk κ.left.left (by rw [autoParam_eq]; rw [← over.w κ]; rfl)
#align category_theory.over.iterated_slice_forward CategoryTheory.Over.iteratedSliceForward
-/
@@ -366,15 +357,9 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
inverse := iteratedSliceBackward f
unitIso :=
NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _) (by tidy)) (by tidy))
- fun X Y g => by
- ext
- dsimp
- simp
+ fun X Y g => by ext; dsimp; simp
counitIso :=
- NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g =>
- by
- ext
- dsimp
+ NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by tidy)) fun X Y g => by ext; dsimp;
simp
#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
@@ -667,10 +652,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
by
refine' ⟨fun (Y : T) l m a => _⟩
let l' : g ⟶ mk (g.hom ≫ m) :=
- hom_mk l
- (by
- dsimp
- rw [← under.w k, category.assoc, a, category.assoc])
+ hom_mk l (by dsimp; rw [← under.w k, category.assoc, a, category.assoc])
suffices l' = hom_mk m by apply congr_arg comma_morphism.right this
rw [← cancel_epi k]
ext
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -137,10 +137,7 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
end
/- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.458) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
/-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
triangle. -/
@@ -150,10 +147,7 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
#align category_theory.over.hom_mk CategoryTheory.Over.homMk
/- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.528) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
@@ -237,10 +231,7 @@ theorem map_obj_left : ((map f).obj U).left = U.left :=
#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
/- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) Y (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
@@ -248,10 +239,7 @@ theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
/- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
@[simp]
theorem map_map_left : ((map f).map g).left = g.left :=
@@ -496,10 +484,7 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
-/
/- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2699) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
/-- To give a morphism in the under category, it suffices to give a morphism fitting in a
commutative triangle. -/
@@ -509,10 +494,7 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
#align category_theory.under.hom_mk CategoryTheory.Under.homMk
/- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
@@ -522,10 +504,7 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
#align category_theory.under.iso_mk CategoryTheory.Under.isoMk
/- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
@[simp]
theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
@@ -534,10 +513,7 @@ theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom
#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
/- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
@[simp]
theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
@@ -612,10 +588,7 @@ theorem map_obj_right : ((map f).obj U).right = U.right :=
#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
/- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) X Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
@@ -623,10 +596,7 @@ theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
/- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
-lean 3 declaration is
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.category.{u2, u1} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
-but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
@[simp]
theorem map_map_right : ((map f).map g).right = g.right :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -96,7 +96,7 @@ lean 3 declaration is
but is expected to have type
forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
#align category_theory.over.w CategoryTheory.Over.w
@@ -483,7 +483,7 @@ lean 3 declaration is
but is expected to have type
forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
-@[simp, reassoc.1]
+@[simp, reassoc]
theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
#align category_theory.under.w CategoryTheory.Under.w
mathlib commit https://github.com/leanprover-community/mathlib/commit/cd8fafa2fac98e1a67097e8a91ad9901cfde48af
@@ -140,7 +140,7 @@ end
lean 3 declaration is
forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.455) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.458) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
/-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
triangle. -/
@@ -153,7 +153,7 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
lean 3 declaration is
forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.525) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.528) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
@@ -499,7 +499,7 @@ def mk {X Y : T} (f : X ⟶ Y) : Under X :=
lean 3 declaration is
forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
but is expected to have type
- forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2636) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2699) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
/-- To give a morphism in the under category, it suffices to give a morphism fitting in a
commutative triangle. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/347636a7a80595d55bedf6e6fbd996a3c39da69a
@@ -108,12 +108,16 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
#align category_theory.over.mk CategoryTheory.Over.mk
-/
-#print CategoryTheory.Over.coeFromHom /-
+/- warning: category_theory.over.coe_from_hom -> CategoryTheory.Over.coeFromHom is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, Coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T}, CoeOut.{succ u1, max (succ u2) (succ u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHomₓ'. -/
/-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
be a global instance, but it is sometimes useful. -/
def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
--/
section
mathlib commit https://github.com/leanprover-community/mathlib/commit/21e3562c5e12d846c7def5eff8cdbc520d7d4936
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
+! leanprover-community/mathlib commit f47581155c818e6361af4e4fda60d27d020c226b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -16,6 +16,9 @@ import Mathbin.CategoryTheory.Functor.EpiMono
/-!
# Over and under categories
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Over (and under) categories are special cases of comma categories.
* If `L` is the identity functor and `R` is a constant functor, then `comma L R` is the "slice" or
"over" category over the object `R` maps to.
mathlib commit https://github.com/leanprover-community/mathlib/commit/195fcd60ff2bfe392543bceb0ec2adcdb472db4c
@@ -35,6 +35,7 @@ universe v₁ v₂ u₁ u₂
-- morphism levels before object levels. See note [category_theory universes].
variable {T : Type u₁} [Category.{v₁} T]
+#print CategoryTheory.Over /-
/-- The over category has as objects arrows in `T` with codomain `X` and as morphisms commutative
triangles.
@@ -43,7 +44,9 @@ See <https://stacks.math.columbia.edu/tag/001G>.
def Over (X : T) :=
CostructuredArrow (𝟭 T) X deriving Category
#align category_theory.over CategoryTheory.Over
+-/
+#print CategoryTheory.Over.inhabited /-
-- Satisfying the inhabited linter
instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
where default :=
@@ -51,49 +54,74 @@ instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
right := default
Hom := 𝟙 _ }
#align category_theory.over.inhabited CategoryTheory.Over.inhabited
+-/
namespace Over
variable {X : T}
+#print CategoryTheory.Over.OverMorphism.ext /-
@[ext]
theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.left) : f = g := by
tidy
#align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
+-/
+#print CategoryTheory.Over.over_right /-
@[simp]
theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by tidy
#align category_theory.over.over_right CategoryTheory.Over.over_right
+-/
+#print CategoryTheory.Over.id_left /-
@[simp]
theorem id_left (U : Over X) : CommaMorphism.left (𝟙 U) = 𝟙 U.left :=
rfl
#align category_theory.over.id_left CategoryTheory.Over.id_left
+-/
+#print CategoryTheory.Over.comp_left /-
@[simp]
theorem comp_left (a b c : Over X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).left = f.left ≫ g.left :=
rfl
#align category_theory.over.comp_left CategoryTheory.Over.comp_left
+-/
+/- warning: category_theory.over.w -> CategoryTheory.Over.w is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Over.{u1, u2} T _inst_1 X} {B : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A B f) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) B)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) A)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.w CategoryTheory.Over.wₓ'. -/
@[simp, reassoc.1]
theorem w {A B : Over X} (f : A ⟶ B) : f.left ≫ B.Hom = A.Hom := by have := f.w <;> tidy
#align category_theory.over.w CategoryTheory.Over.w
+#print CategoryTheory.Over.mk /-
/-- To give an object in the over category, it suffices to give a morphism with codomain `X`. -/
@[simps left Hom]
def mk {X Y : T} (f : Y ⟶ X) : Over X :=
CostructuredArrow.mk f
#align category_theory.over.mk CategoryTheory.Over.mk
+-/
+#print CategoryTheory.Over.coeFromHom /-
/-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
be a global instance, but it is sometimes useful. -/
def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
+-/
section
attribute [local instance] coe_from_hom
+/- warning: category_theory.over.coe_hom -> CategoryTheory.Over.coe_hom is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) ((fun (a : Type.{u1}) (b : Type.{max u2 u1}) [self : HasLiftT.{succ u1, succ (max u2 u1)} a b] => self.0) (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (HasLiftT.mk.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CoeTCₓ.coe.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (coeBase.{succ u1, succ (max u2 u1)} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X) (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.coeFromHom.{u1, u2} T _inst_1 X Y)))) f)) f
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) Y X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Over.mk.{u1, u2} T _inst_1 X Y f)) f
+Case conversion may be inaccurate. Consider using '#align category_theory.over.coe_hom CategoryTheory.Over.coe_homₓ'. -/
@[simp]
theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
rfl
@@ -101,6 +129,12 @@ theorem coe_hom {X Y : T} (f : Y ⟶ X) : (f : Over X).Hom = f :=
end
+/- warning: category_theory.over.hom_mk -> CategoryTheory.Over.homMk is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.CostructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X) (CategoryTheory.CostructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) X))) U V)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) _auto._@.Mathlib.CategoryTheory.Over._hyg.455) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.hom_mk CategoryTheory.Over.homMkₓ'. -/
/-- To give a morphism in the over category, it suffices to give an arrow fitting in a commutative
triangle. -/
@[simps]
@@ -108,6 +142,12 @@ def homMk {U V : Over X} (f : U.left ⟶ V.left) (w : f ≫ V.Hom = U.Hom := by
CostructuredArrow.homMk f w
#align category_theory.over.hom_mk CategoryTheory.Over.homMk
+/- warning: category_theory.over.iso_mk -> CategoryTheory.Over.isoMk is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) f g)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : CategoryTheory.Over.{u1, u2} T _inst_1 X} (hl : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g))) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g) hl) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) g)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) _auto._@.Mathlib.CategoryTheory.Over._hyg.525) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f g)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.iso_mk CategoryTheory.Over.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
@@ -121,6 +161,7 @@ section
variable (X)
+#print CategoryTheory.Over.forget /-
/-- The forgetful functor mapping an arrow to its domain.
See <https://stacks.math.columbia.edu/tag/001G>.
@@ -128,26 +169,42 @@ See <https://stacks.math.columbia.edu/tag/001G>.
def forget : Over X ⥤ T :=
Comma.fst _ _
#align category_theory.over.forget CategoryTheory.Over.forget
+-/
end
+/- warning: category_theory.over.forget_obj -> CategoryTheory.Over.forget_obj is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_obj CategoryTheory.Over.forget_objₓ'. -/
@[simp]
theorem forget_obj {U : Over X} : (forget X).obj U = U.left :=
rfl
#align category_theory.over.forget_obj CategoryTheory.Over.forget_obj
+/- warning: category_theory.over.forget_map -> CategoryTheory.Over.forget_map is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Over.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V f)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.forget_map CategoryTheory.Over.forget_mapₓ'. -/
@[simp]
theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
rfl
#align category_theory.over.forget_map CategoryTheory.Over.forget_map
+#print CategoryTheory.Over.forgetCocone /-
/-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
@[simps]
def forgetCocone (X : T) : Limits.Cocone (forget X) :=
{ pt
ι := { app := Comma.hom } }
#align category_theory.over.forget_cocone CategoryTheory.Over.forgetCocone
+-/
+#print CategoryTheory.Over.map /-
/-- A morphism `f : X ⟶ Y` induces a functor `over X ⥤ over Y` in the obvious way.
See <https://stacks.math.columbia.edu/tag/001G>.
@@ -155,48 +212,76 @@ See <https://stacks.math.columbia.edu/tag/001G>.
def map {Y : T} (f : X ⟶ Y) : Over X ⥤ Over Y :=
Comma.mapRight _ <| Discrete.natTrans fun _ => f
#align category_theory.over.map CategoryTheory.Over.map
+-/
section
variable {Y : T} {f : X ⟶ Y} {U V : Over X} {g : U ⟶ V}
+/- warning: category_theory.over.map_obj_left -> CategoryTheory.Over.map_obj_left is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_leftₓ'. -/
@[simp]
theorem map_obj_left : ((map f).obj U).left = U.left :=
rfl
#align category_theory.over.map_obj_left CategoryTheory.Over.map_obj_left
+/- warning: category_theory.over.map_obj_hom -> CategoryTheory.Over.map_obj_hom is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U)) Y (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = U.Hom ≫ f :=
rfl
#align category_theory.over.map_obj_hom CategoryTheory.Over.map_obj_hom
+/- warning: category_theory.over.map_map_left -> CategoryTheory.Over.map_map_left is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y)) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Over.{u1, u2} T _inst_1 X} {V : CategoryTheory.Over.{u1, u2} T _inst_1 X} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X))) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) (CategoryTheory.Over.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 Y) (CategoryTheory.Over.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) U V g)
+Case conversion may be inaccurate. Consider using '#align category_theory.over.map_map_left CategoryTheory.Over.map_map_leftₓ'. -/
@[simp]
theorem map_map_left : ((map f).map g).left = g.left :=
rfl
#align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
+#print CategoryTheory.Over.mapId /-
/-- Mapping by the identity morphism is just the identity functor. -/
def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
#align category_theory.over.map_id CategoryTheory.Over.mapId
+-/
+#print CategoryTheory.Over.mapComp /-
/-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙ map g :=
NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
#align category_theory.over.map_comp CategoryTheory.Over.mapComp
+-/
end
+#print CategoryTheory.Over.forget_reflects_iso /-
instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
where reflects Y Z f t :=
⟨⟨over.hom_mk (inv ((forget X).map f))
((as_iso ((forget X).map f)).inv_comp_eq.2 (over.w f).symm),
by tidy⟩⟩
#align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
+-/
+#print CategoryTheory.Over.forget_faithful /-
instance forget_faithful : Faithful (forget X) where
#align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
+-/
+#print CategoryTheory.Over.epi_of_epi_left /-
-- TODO: Show the converse holds if `T` has binary products.
/--
If `k.left` is an epimorphism, then `k` is an epimorphism. In other words, `over.forget X` reflects
@@ -207,7 +292,9 @@ The converse does not hold without additional assumptions on the underlying cate
theorem epi_of_epi_left {f g : Over X} (k : f ⟶ g) [hk : Epi k.left] : Epi k :=
(forget X).epi_of_epi_map hk
#align category_theory.over.epi_of_epi_left CategoryTheory.Over.epi_of_epi_left
+-/
+#print CategoryTheory.Over.mono_of_mono_left /-
/--
If `k.left` is a monomorphism, then `k` is a monomorphism. In other words, `over.forget X` reflects
monomorphisms.
@@ -218,7 +305,9 @@ This lemma is not an instance, to avoid loops in type class inference.
theorem mono_of_mono_left {f g : Over X} (k : f ⟶ g) [hk : Mono k.left] : Mono k :=
(forget X).mono_of_mono_map hk
#align category_theory.over.mono_of_mono_left CategoryTheory.Over.mono_of_mono_left
+-/
+#print CategoryTheory.Over.mono_left_of_mono /-
/--
If `k` is a monomorphism, then `k.left` is a monomorphism. In other words, `over.forget X` preserves
monomorphisms.
@@ -237,11 +326,13 @@ instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :
ext
apply a
#align category_theory.over.mono_left_of_mono CategoryTheory.Over.mono_left_of_mono
+-/
section IteratedSlice
variable (f : Over X)
+#print CategoryTheory.Over.iteratedSliceForward /-
/-- Given f : Y ⟶ X, this is the obvious functor from (T/X)/f to T/Y -/
@[simps]
def iteratedSliceForward : Over f ⥤ Over f.left
@@ -254,7 +345,9 @@ def iteratedSliceForward : Over f ⥤ Over f.left
rw [← over.w κ]
rfl)
#align category_theory.over.iterated_slice_forward CategoryTheory.Over.iteratedSliceForward
+-/
+#print CategoryTheory.Over.iteratedSliceBackward /-
/-- Given f : Y ⟶ X, this is the obvious functor from T/Y to (T/X)/f -/
@[simps]
def iteratedSliceBackward : Over f.left ⥤ Over f
@@ -262,7 +355,14 @@ def iteratedSliceBackward : Over f.left ⥤ Over f
obj g := mk (homMk g.Hom : mk (g.Hom ≫ f.Hom) ⟶ f)
map g h α := homMk (homMk α.left (w_assoc α f.Hom)) (OverMorphism.ext (w α))
#align category_theory.over.iterated_slice_backward CategoryTheory.Over.iteratedSliceBackward
+-/
+/- warning: category_theory.over.iterated_slice_equiv -> CategoryTheory.Over.iteratedSliceEquiv is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.Over.category.{u2, u1} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.Over.category.{u2, u1} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} (f : CategoryTheory.Over.{u1, u2} T _inst_1 X), CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.Over.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 X) f) (CategoryTheory.instCategoryOver.{u1, u2} T _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} T _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) f))
+Case conversion may be inaccurate. Consider using '#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquivₓ'. -/
/-- Given f : Y ⟶ X, we have an equivalence between (T/X)/f and T/Y -/
@[simps]
def iteratedSliceEquiv : Over f ≌ Over f.left
@@ -283,15 +383,19 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
simp
#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
+#print CategoryTheory.Over.iteratedSliceForward_forget /-
theorem iteratedSliceForward_forget :
iteratedSliceForward f ⋙ forget f.left = forget f ⋙ forget X :=
rfl
#align category_theory.over.iterated_slice_forward_forget CategoryTheory.Over.iteratedSliceForward_forget
+-/
+#print CategoryTheory.Over.iteratedSliceBackward_forget_forget /-
theorem iteratedSliceBackward_forget_forget :
iteratedSliceBackward f ⋙ forget f ⋙ forget X = forget f.left :=
rfl
#align category_theory.over.iterated_slice_backward_forget_forget CategoryTheory.Over.iteratedSliceBackward_forget_forget
+-/
end IteratedSlice
@@ -299,6 +403,12 @@ section
variable {D : Type u₂} [Category.{v₂} D]
+/- warning: category_theory.over.post -> CategoryTheory.Over.post is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.Over.category.{u3, u1} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Over.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
+but is expected to have type
+ forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {X : T} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} T _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.over.post CategoryTheory.Over.postₓ'. -/
/-- A functor `F : T ⥤ D` induces a functor `over X ⥤ over (F.obj X)` in the obvious way. -/
@[simps]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
@@ -311,12 +421,15 @@ end
end Over
+#print CategoryTheory.Under /-
/-- The under category has as objects arrows with domain `X` and as morphisms commutative
triangles. -/
def Under (X : T) :=
StructuredArrow X (𝟭 T)deriving Category
#align category_theory.under CategoryTheory.Under
+-/
+#print CategoryTheory.Under.inhabited /-
-- Satisfying the inhabited linter
instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
where default :=
@@ -324,40 +437,63 @@ instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
right := default
Hom := 𝟙 _ }
#align category_theory.under.inhabited CategoryTheory.Under.inhabited
+-/
namespace Under
variable {X : T}
+#print CategoryTheory.Under.UnderMorphism.ext /-
@[ext]
theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
by tidy
#align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
+-/
+#print CategoryTheory.Under.under_left /-
@[simp]
theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by tidy
#align category_theory.under.under_left CategoryTheory.Under.under_left
+-/
+#print CategoryTheory.Under.id_right /-
@[simp]
theorem id_right (U : Under X) : CommaMorphism.right (𝟙 U) = 𝟙 U.right :=
rfl
#align category_theory.under.id_right CategoryTheory.Under.id_right
+-/
+#print CategoryTheory.Under.comp_right /-
@[simp]
theorem comp_right (a b c : Under X) (f : a ⟶ b) (g : b ⟶ c) : (f ≫ g).right = f.right ≫ g.right :=
rfl
#align category_theory.under.comp_right CategoryTheory.Under.comp_right
+-/
+/- warning: category_theory.under.w -> CategoryTheory.Under.w is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {A : CategoryTheory.Under.{u1, u2} T _inst_1 X} {B : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) A B), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) A B f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) B)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.w CategoryTheory.Under.wₓ'. -/
@[simp, reassoc.1]
theorem w {A B : Under X} (f : A ⟶ B) : A.Hom ≫ f.right = B.Hom := by have := f.w <;> tidy
#align category_theory.under.w CategoryTheory.Under.w
+#print CategoryTheory.Under.mk /-
/-- To give an object in the under category, it suffices to give an arrow with domain `X`. -/
@[simps right Hom]
def mk {X Y : T} (f : X ⟶ Y) : Under X :=
StructuredArrow.mk f
#align category_theory.under.mk CategoryTheory.Under.mk
+-/
+/- warning: category_theory.under.hom_mk -> CategoryTheory.Under.homMk is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParamₓ.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (Name.mk_string (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str (String.str String.empty (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 98 (OfNat.mk.{0} Nat 98 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 118 (OfNat.mk.{0} Nat 118 (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 105 (OfNat.mk.{0} Nat 105 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 111 (OfNat.mk.{0} Nat 111 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 117 (OfNat.mk.{0} Nat 117 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 115 (OfNat.mk.{0} Nat 115 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 108 (OfNat.mk.{0} Nat 108 (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) (Char.ofNat (OfNat.ofNat.{0} Nat 121 (OfNat.mk.{0} Nat 121 (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit0.{0} Nat Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (bit1.{0} Nat Nat.hasOne Nat.hasAdd (One.one.{0} Nat Nat.hasOne))))))))))) Name.anonymous)) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.StructuredArrow.{u1, u1, u2, u2} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.StructuredArrow.category.{u1, u2, u2, u1} T _inst_1 T _inst_1 X (CategoryTheory.Functor.id.{u1, u2} T _inst_1)))) U V)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} (f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)), (autoParam.{0} (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U) f) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) V)) _auto._@.Mathlib.CategoryTheory.Over._hyg.2636) -> (Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.hom_mk CategoryTheory.Under.homMkₓ'. -/
/-- To give a morphism in the under category, it suffices to give a morphism fitting in a
commutative triangle. -/
@[simps]
@@ -365,6 +501,12 @@ def homMk {U V : Under X} (f : U.right ⟶ V.right) (w : U.Hom ≫ f = V.Hom :=
StructuredArrow.homMk f w
#align category_theory.under.hom_mk CategoryTheory.Under.homMk
+/- warning: category_theory.under.iso_mk -> CategoryTheory.Under.isoMk is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), (Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) -> (CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk CategoryTheory.Under.isoMkₓ'. -/
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
@@ -372,12 +514,24 @@ def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.
StructuredArrow.isoMk hr hw
#align category_theory.under.iso_mk CategoryTheory.Under.isoMk
+/- warning: category_theory.under.iso_mk_hom_right -> CategoryTheory.Under.isoMk_hom_right is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f g (CategoryTheory.Iso.hom.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_rightₓ'. -/
@[simp]
theorem isoMk_hom_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).Hom.right = hr.Hom :=
rfl
#align category_theory.under.iso_mk_hom_right CategoryTheory.Under.isoMk_hom_right
+/- warning: category_theory.under.iso_mk_inv_right -> CategoryTheory.Under.isoMk_inv_right is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {f : CategoryTheory.Under.{u1, u2} T _inst_1 X} {g : CategoryTheory.Under.{u1, u2} T _inst_1 X} (hr : CategoryTheory.Iso.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (hw : Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Iso.hom.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g)), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g f (CategoryTheory.Iso.inv.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) f g (CategoryTheory.Under.isoMk.{u1, u2} T _inst_1 X f g hr hw))) (CategoryTheory.Iso.inv.{u1, u2} T _inst_1 (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) f) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) g) hr)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.iso_mk_inv_right CategoryTheory.Under.isoMk_inv_rightₓ'. -/
@[simp]
theorem isoMk_inv_right {f g : Under X} (hr : f.right ≅ g.right) (hw : f.Hom ≫ hr.Hom = g.Hom) :
(isoMk hr hw).inv.right = hr.inv :=
@@ -388,75 +542,120 @@ section
variable (X)
+#print CategoryTheory.Under.forget /-
/-- The forgetful functor mapping an arrow to its domain. -/
def forget : Under X ⥤ T :=
Comma.snd _ _
#align category_theory.under.forget CategoryTheory.Under.forget
+-/
end
+/- warning: category_theory.under.forget_obj -> CategoryTheory.Under.forget_obj is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X}, Eq.{succ u2} T (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_obj CategoryTheory.Under.forget_objₓ'. -/
@[simp]
theorem forget_obj {U : Under X} : (forget X).obj U = U.right :=
rfl
#align category_theory.under.forget_obj CategoryTheory.Under.forget_obj
+/- warning: category_theory.under.forget_map -> CategoryTheory.Under.forget_map is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Under.category.{u2, u1} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) V)) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {U : CategoryTheory.Under.{u1, u2} T _inst_1 X} {V : CategoryTheory.Under.{u1, u2} T _inst_1 X} {f : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) V)) (Prefunctor.map.{succ u1, succ u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, u2} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) T _inst_1 (CategoryTheory.Under.forget.{u1, u2} T _inst_1 X)) U V f) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V f)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.forget_map CategoryTheory.Under.forget_mapₓ'. -/
@[simp]
theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
rfl
#align category_theory.under.forget_map CategoryTheory.Under.forget_map
+#print CategoryTheory.Under.forgetCone /-
/-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
@[simps]
def forgetCone (X : T) : Limits.Cone (forget X) :=
{ pt
π := { app := Comma.hom } }
#align category_theory.under.forget_cone CategoryTheory.Under.forgetCone
+-/
+#print CategoryTheory.Under.map /-
/-- A morphism `X ⟶ Y` induces a functor `under Y ⥤ under X` in the obvious way. -/
def map {Y : T} (f : X ⟶ Y) : Under Y ⥤ Under X :=
Comma.mapLeft _ <| Discrete.natTrans fun _ => f
#align category_theory.under.map CategoryTheory.Under.map
+-/
section
variable {Y : T} {f : X ⟶ Y} {U V : Under Y} {g : U ⟶ V}
+/- warning: category_theory.under.map_obj_right -> CategoryTheory.Under.map_obj_right is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u2} T (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_rightₓ'. -/
@[simp]
theorem map_obj_right : ((map f).obj U).right = U.right :=
rfl
#align category_theory.under.map_obj_right CategoryTheory.Under.map_obj_right
+/- warning: category_theory.under.map_obj_hom -> CategoryTheory.Under.map_obj_hom is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) Y (CategoryTheory.Functor.obj.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U))) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X)) (CategoryTheory.Comma.left.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U))) (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.CategoryStruct.comp.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1) X Y (Prefunctor.obj.{succ u1, succ u1, u2, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} T _inst_1 T _inst_1 (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U)) f (CategoryTheory.Comma.hom.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U))
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_homₓ'. -/
@[simp]
theorem map_obj_hom : ((map f).obj U).Hom = f ≫ U.Hom :=
rfl
#align category_theory.under.map_obj_hom CategoryTheory.Under.map_obj_hom
+/- warning: category_theory.under.map_map_right -> CategoryTheory.Under.map_map_right is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.category.{u2, u1} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) V) (CategoryTheory.Functor.map.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.commaCategory.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1)) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+but is expected to have type
+ forall {T : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} T] {X : T} {Y : T} {f : Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) X Y} {U : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {V : CategoryTheory.Under.{u1, u2} T _inst_1 Y} {g : Quiver.Hom.{succ u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) U V}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} T (CategoryTheory.Category.toCategoryStruct.{u1, u2} T _inst_1)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U)) (CategoryTheory.Comma.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V))) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 X) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) V) (Prefunctor.map.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y))) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Under.{u1, u2} T _inst_1 Y) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 Y) (CategoryTheory.Under.{u1, u2} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u2} T _inst_1 X) (CategoryTheory.Under.map.{u1, u2} T _inst_1 X Y f)) U V g)) (CategoryTheory.CommaMorphism.right.{u1, u1, u1, u1, u2, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) T _inst_1 T _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} T _inst_1 Y) (CategoryTheory.Functor.id.{u1, u2} T _inst_1) U V g)
+Case conversion may be inaccurate. Consider using '#align category_theory.under.map_map_right CategoryTheory.Under.map_map_rightₓ'. -/
@[simp]
theorem map_map_right : ((map f).map g).right = g.right :=
rfl
#align category_theory.under.map_map_right CategoryTheory.Under.map_map_right
+#print CategoryTheory.Under.mapId /-
/-- Mapping by the identity morphism is just the identity functor. -/
def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
#align category_theory.under.map_id CategoryTheory.Under.mapId
+-/
+#print CategoryTheory.Under.mapComp /-
/-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙ map f :=
NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by tidy)) (by tidy)
#align category_theory.under.map_comp CategoryTheory.Under.mapComp
+-/
end
+#print CategoryTheory.Under.forget_reflects_iso /-
instance forget_reflects_iso : ReflectsIsomorphisms (forget X)
where reflects Y Z f t :=
⟨⟨under.hom_mk (inv ((under.forget X).map f)) ((is_iso.comp_inv_eq _).2 (under.w f).symm), by
tidy⟩⟩
#align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
+-/
+#print CategoryTheory.Under.forget_faithful /-
instance forget_faithful : Faithful (forget X) where
#align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
+-/
+#print CategoryTheory.Under.mono_of_mono_right /-
-- TODO: Show the converse holds if `T` has binary coproducts.
/-- If `k.right` is a monomorphism, then `k` is a monomorphism. In other words, `under.forget X`
reflects epimorphisms.
@@ -466,7 +665,9 @@ The converse does not hold without additional assumptions on the underlying cate
theorem mono_of_mono_right {f g : Under X} (k : f ⟶ g) [hk : Mono k.right] : Mono k :=
(forget X).mono_of_mono_map hk
#align category_theory.under.mono_of_mono_right CategoryTheory.Under.mono_of_mono_right
+-/
+#print CategoryTheory.Under.epi_of_epi_right /-
/--
If `k.right` is a epimorphism, then `k` is a epimorphism. In other words, `under.forget X` reflects
epimorphisms.
@@ -477,7 +678,9 @@ This lemma is not an instance, to avoid loops in type class inference.
theorem epi_of_epi_right {f g : Under X} (k : f ⟶ g) [hk : Epi k.right] : Epi k :=
(forget X).epi_of_epi_map hk
#align category_theory.under.epi_of_epi_right CategoryTheory.Under.epi_of_epi_right
+-/
+#print CategoryTheory.Under.epi_right_of_epi /-
/--
If `k` is a epimorphism, then `k.right` is a epimorphism. In other words, `under.forget X` preserves
epimorphisms.
@@ -496,11 +699,18 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
ext
apply a
#align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
+-/
section
variable {D : Type u₂} [Category.{v₂} D]
+/- warning: category_theory.under.post -> CategoryTheory.Under.post is a dubious translation:
+lean 3 declaration is
+ forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.Under.category.{u3, u1} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X)) (CategoryTheory.Under.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} T _inst_1 D _inst_2 F X))
+but is expected to have type
+ forall {T : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} T] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : T} (F : CategoryTheory.Functor.{u1, u2, u3, u4} T _inst_1 D _inst_2), CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Under.{u1, u3} T _inst_1 X) (CategoryTheory.instCategoryUnder.{u1, u3} T _inst_1 X) (CategoryTheory.Under.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X)) (CategoryTheory.instCategoryUnder.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} T (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} T (CategoryTheory.Category.toCategoryStruct.{u1, u3} T _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} T _inst_1 D _inst_2 F) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.under.post CategoryTheory.Under.postₓ'. -/
/-- A functor `F : T ⥤ D` induces a functor `under X ⥤ under (F.obj X)` in the obvious way. -/
@[simps]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
mathlib commit https://github.com/leanprover-community/mathlib/commit/9da1b3534b65d9661eb8f42443598a92bbb49211
@@ -144,7 +144,7 @@ theorem forget_map {U V : Over X} {f : U ⟶ V} : (forget X).map f = f.left :=
/-- The natural cocone over the forgetful functor `over X ⥤ T` with cocone point `X`. -/
@[simps]
def forgetCocone (X : T) : Limits.Cocone (forget X) :=
- { x
+ { pt
ι := { app := Comma.hom } }
#align category_theory.over.forget_cocone CategoryTheory.Over.forgetCocone
@@ -408,7 +408,7 @@ theorem forget_map {U V : Under X} {f : U ⟶ V} : (forget X).map f = f.right :=
/-- The natural cone over the forgetful functor `under X ⥤ T` with cone point `X`. -/
@[simps]
def forgetCone (X : T) : Limits.Cone (forget X) :=
- { x
+ { pt
π := { app := Comma.hom } }
#align category_theory.under.forget_cone CategoryTheory.Under.forgetCone
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: Johan Commelin, Bhavik Mehta
! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 3e0dd193514c9380edc69f1da92e80c02713c41d
+! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -48,6 +48,7 @@ def Over (X : T) :=
instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
where default :=
{ left := default
+ right := default
Hom := 𝟙 _ }
#align category_theory.over.inhabited CategoryTheory.Over.inhabited
@@ -303,9 +304,7 @@ variable {D : Type u₂} [Category.{v₂} D]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
where
obj Y := mk <| F.map Y.Hom
- map Y₁ Y₂ f :=
- { left := F.map f.left
- w' := by tidy <;> erw [← F.map_comp, w] }
+ map Y₁ Y₂ f := Over.homMk (F.map f.left) (by tidy <;> erw [← F.map_comp, w])
#align category_theory.over.post CategoryTheory.Over.post
end
@@ -321,7 +320,8 @@ def Under (X : T) :=
-- Satisfying the inhabited linter
instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
where default :=
- { right := default
+ { left := default
+ right := default
Hom := 𝟙 _ }
#align category_theory.under.inhabited CategoryTheory.Under.inhabited
@@ -506,9 +506,7 @@ variable {D : Type u₂} [Category.{v₂} D]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X)
where
obj Y := mk <| F.map Y.Hom
- map Y₁ Y₂ f :=
- { right := F.map f.right
- w' := by tidy <;> erw [← F.map_comp, w] }
+ map Y₁ Y₂ f := Under.homMk (F.map f.right) (by tidy <;> erw [← F.map_comp, w])
#align category_theory.under.post CategoryTheory.Under.post
end
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Functor.Full
a Prop (#12449)
Before this PR, Functor.Full
contained the data of the preimage of maps by a full functor F
. This PR makes Functor.Full
a proposition. This is to prevent any diamond to appear.
The lemma Functor.image_preimage
is also renamed Functor.map_preimage
.
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -207,7 +207,7 @@ instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
#align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
/-- The identity over `X` is terminal. -/
-def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
+noncomputable def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
CostructuredArrow.mkIdTerminal
instance forget_faithful : (forget X).Faithful where
@@ -490,7 +490,7 @@ instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
#align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
/-- The identity under `X` is initial. -/
-def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
+noncomputable def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
StructuredArrow.mkIdInitial
instance forget_faithful : (forget X).Faithful where
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -197,7 +197,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
end
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
reflects {Y Z} f t := by
let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
@@ -210,7 +210,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
CostructuredArrow.mkIdTerminal
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : (forget X).Faithful where
#align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
-- TODO: Show the converse holds if `T` has binary products.
@@ -319,18 +319,18 @@ variable {D : Type u₂} [Category.{v₂} D]
def toOver (F : D ⥤ T) (X : T) : CostructuredArrow F X ⥤ Over X :=
CostructuredArrow.pre F (𝟭 T) X
-instance (F : D ⥤ T) (X : T) [Faithful F] : Faithful (toOver F X) :=
- show Faithful (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.Faithful] : (toOver F X).Faithful :=
+ show (CostructuredArrow.pre _ _ _).Faithful from inferInstance
-instance (F : D ⥤ T) (X : T) [Full F] : Full (toOver F X) :=
- show Full (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.Full] : (toOver F X).Full :=
+ show (CostructuredArrow.pre _ _ _).Full from inferInstance
-instance (F : D ⥤ T) (X : T) [EssSurj F] : EssSurj (toOver F X) :=
- show EssSurj (CostructuredArrow.pre _ _ _) from inferInstance
+instance (F : D ⥤ T) (X : T) [F.EssSurj] : (toOver F X).EssSurj :=
+ show (CostructuredArrow.pre _ _ _).EssSurj from inferInstance
/-- An equivalence `F` induces an equivalence `CostructuredArrow F X ≌ Over X`. -/
-noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [IsEquivalence F] :
- IsEquivalence (toOver F X) :=
+noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [F.IsEquivalence] :
+ (toOver F X).IsEquivalence :=
CostructuredArrow.isEquivalencePre _ _ _
end CostructuredArrow
@@ -480,7 +480,7 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
end
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+instance forget_reflects_iso : (forget X).ReflectsIsomorphisms where
reflects {Y Z} f t := by
let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
((IsIso.comp_inv_eq _).2 (Under.w f).symm)
@@ -493,7 +493,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
StructuredArrow.mkIdInitial
-instance forget_faithful : Faithful (forget X) where
+instance forget_faithful : (forget X).Faithful where
#align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
-- TODO: Show the converse holds if `T` has binary coproducts.
@@ -557,18 +557,18 @@ variable {D : Type u₂} [Category.{v₂} D]
def toUnder (X : T) (F : D ⥤ T) : StructuredArrow X F ⥤ Under X :=
StructuredArrow.pre X F (𝟭 T)
-instance (X : T) (F : D ⥤ T) [Faithful F] : Faithful (toUnder X F) :=
- show Faithful (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.Faithful] : (toUnder X F).Faithful :=
+ show (StructuredArrow.pre _ _ _).Faithful from inferInstance
-instance (X : T) (F : D ⥤ T) [Full F] : Full (toUnder X F) :=
- show Full (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.Full] : (toUnder X F).Full :=
+ show (StructuredArrow.pre _ _ _).Full from inferInstance
-instance (X : T) (F : D ⥤ T) [EssSurj F] : EssSurj (toUnder X F) :=
- show EssSurj (StructuredArrow.pre _ _ _) from inferInstance
+instance (X : T) (F : D ⥤ T) [F.EssSurj] : (toUnder X F).EssSurj :=
+ show (StructuredArrow.pre _ _ _).EssSurj from inferInstance
/-- An equivalence `F` induces an equivalence `StructuredArrow X F ≌ Under X`. -/
-noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
- IsEquivalence (toUnder X F) :=
+noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [F.IsEquivalence] :
+ (toUnder X F).IsEquivalence :=
StructuredArrow.isEquivalencePre _ _ _
end StructuredArrow
@@ -203,7 +203,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
- repeat (ext; simp)
+ repeat (ext; simp [g])
#align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
/-- The identity over `X` is terminal. -/
@@ -486,7 +486,7 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
((IsIso.comp_inv_eq _).2 (Under.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
- repeat (ext; simp)
+ repeat (ext; simp [g])
#align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
/-- The identity under `X` is initial. -/
@@ -63,7 +63,7 @@ theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.
simp only [eq_iff_true_of_subsingleton]
#align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
--- @[simp] : Porting note : simp can prove this
+-- @[simp] : Porting note (#10618): simp can prove this
theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only
#align category_theory.over.over_right CategoryTheory.Over.over_right
@@ -362,7 +362,7 @@ theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right =
congr; simp only [eq_iff_true_of_subsingleton]
#align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
--- @[simp] Porting note: simp can prove this
+-- @[simp] Porting note (#10618): simp can prove this
theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only
#align category_theory.under.under_left CategoryTheory.Under.under_left
@@ -3,7 +3,7 @@ Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
-/
-import Mathlib.CategoryTheory.StructuredArrow
+import Mathlib.CategoryTheory.Comma.StructuredArrow
import Mathlib.CategoryTheory.PUnit
import Mathlib.CategoryTheory.Functor.ReflectsIso
import Mathlib.CategoryTheory.Functor.EpiMono
@@ -243,7 +243,7 @@ The converse of `CategoryTheory.Over.mono_of_mono_left`.
instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left := by
refine' ⟨fun { Y : T } l m a => _⟩
let l' : mk (m ≫ f.hom) ⟶ f := homMk l (by
- dsimp; rw [← Over.w k, ←Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
+ dsimp; rw [← Over.w k, ← Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
suffices l' = (homMk m : mk (m ≫ f.hom) ⟶ f) by apply congrArg CommaMorphism.left this
rw [← cancel_mono k]
ext
In this PR, we define a presheaf presheafHom F G
when F
and G
are presheaves Cᵒᵖ ⥤ A
and show that it is a sheaf when G
is a sheaf (for a certain Grothendieck topology on C
).
Co-authored-by: Joël Riou <37772949+joelriou@users.noreply.github.com>
@@ -183,6 +183,8 @@ theorem map_map_left : ((map f).map g).left = g.left :=
rfl
#align category_theory.over.map_map_left CategoryTheory.Over.map_map_left
+variable (Y)
+
/-- Mapping by the identity morphism is just the identity functor. -/
def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
NatIso.ofComponents fun X => isoMk (Iso.refl _)
aesop_cat_nonterminal
is a non-terminal variant of aesop
. It's not supposed to be used in production code since it's even worse than non-terminal simp
. However, there were a few occurrences left (presumably from the port), which this PR removes.
The only nontrivial change is that I add mathlib's rfl
tactic to the CategoryTheory
Aesop rule set.
@@ -299,7 +299,8 @@ variable {D : Type u₂} [Category.{v₂} D]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
where
obj Y := mk <| F.map Y.hom
- map f := Over.homMk (F.map f.left) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
+ map f := Over.homMk (F.map f.left)
+ (by simp only [Functor.id_obj, mk_left, Functor.const_obj_obj, mk_hom, ← F.map_comp, w])
#align category_theory.over.post CategoryTheory.Over.post
end
@@ -536,7 +537,8 @@ variable {D : Type u₂} [Category.{v₂} D]
@[simps]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X) where
obj Y := mk <| F.map Y.hom
- map f := Under.homMk (F.map f.right) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
+ map f := Under.homMk (F.map f.right)
+ (by simp only [Functor.id_obj, Functor.const_obj_obj, mk_right, mk_hom, ← F.map_comp, w])
#align category_theory.under.post CategoryTheory.Under.post
end
@@ -524,7 +524,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
-- Porting note: add type ascription here to `homMk m`
- suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
+ suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
rw [← cancel_epi k]; ext; apply a
#align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
@@ -44,8 +44,8 @@ def Over (X : T) :=
instance (X : T) : Category (Over X) := commaCategory
-- Satisfying the inhabited linter
-instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
- where default :=
+instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T)) where
+ default :=
{ left := default
right := default
hom := 𝟙 _ }
@@ -341,8 +341,8 @@ def Under (X : T) :=
instance (X : T) : Category (Under X) := commaCategory
-- Satisfying the inhabited linter
-instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T))
- where default :=
+instance Under.inhabited [Inhabited T] : Inhabited (Under (default : T)) where
+ default :=
{ left := default
right := default
hom := 𝟙 _ }
@@ -569,4 +569,48 @@ noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
end StructuredArrow
+namespace Functor
+
+variable {S : Type u₂} [Category.{v₂} S]
+
+/-- Given `X : T`, to upgrade a functor `F : S ⥤ T` to a functor `S ⥤ Over X`, it suffices to
+ provide maps `F.obj Y ⟶ X` for all `Y` making the obvious triangles involving all `F.map g`
+ commute. -/
+@[simps! obj_left map_left]
+def toOver (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : S ⥤ Over X :=
+ F.toCostructuredArrow (𝟭 _) X f h
+
+/-- Upgrading a functor `S ⥤ T` to a functor `S ⥤ Over X` and composing with the forgetful functor
+ `Over X ⥤ T` recovers the original functor. -/
+def toOverCompForget (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : F.toOver X f h ⋙ Over.forget _ ≅ F :=
+ Iso.refl _
+
+@[simp]
+lemma toOver_comp_forget (F : S ⥤ T) (X : T) (f : (Y : S) → F.obj Y ⟶ X)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), F.map g ≫ f Z = f Y) : F.toOver X f h ⋙ Over.forget _ = F :=
+ rfl
+
+/-- Given `X : T`, to upgrade a functor `F : S ⥤ T` to a functor `S ⥤ Under X`, it suffices to
+ provide maps `X ⟶ F.obj Y` for all `Y` making the obvious triangles involving all `F.map g`
+ commute. -/
+@[simps! obj_right map_right]
+def toUnder (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : S ⥤ Under X :=
+ F.toStructuredArrow X (𝟭 _) f h
+
+/-- Upgrading a functor `S ⥤ T` to a functor `S ⥤ Under X` and composing with the forgetful functor
+ `Under X ⥤ T` recovers the original functor. -/
+def toUnderCompForget (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : F.toUnder X f h ⋙ Under.forget _ ≅ F :=
+ Iso.refl _
+
+@[simp]
+lemma toUnder_comp_forget (F : S ⥤ T) (X : T) (f : (Y : S) → X ⟶ F.obj Y)
+ (h : ∀ {Y Z : S} (g : Y ⟶ Z), f Y ≫ F.map g = f Z) : F.toUnder X f h ⋙ Under.forget _ = F :=
+ rfl
+
+end Functor
+
end CategoryTheory
@@ -306,6 +306,32 @@ end
end Over
+namespace CostructuredArrow
+
+variable {D : Type u₂} [Category.{v₂} D]
+
+/-- Reinterpreting an `F`-costructured arrow `F.obj d ⟶ X` as an arrow over `X` induces a functor
+ `CostructuredArrow F X ⥤ Over X`. -/
+@[simps!]
+def toOver (F : D ⥤ T) (X : T) : CostructuredArrow F X ⥤ Over X :=
+ CostructuredArrow.pre F (𝟭 T) X
+
+instance (F : D ⥤ T) (X : T) [Faithful F] : Faithful (toOver F X) :=
+ show Faithful (CostructuredArrow.pre _ _ _) from inferInstance
+
+instance (F : D ⥤ T) (X : T) [Full F] : Full (toOver F X) :=
+ show Full (CostructuredArrow.pre _ _ _) from inferInstance
+
+instance (F : D ⥤ T) (X : T) [EssSurj F] : EssSurj (toOver F X) :=
+ show EssSurj (CostructuredArrow.pre _ _ _) from inferInstance
+
+/-- An equivalence `F` induces an equivalence `CostructuredArrow F X ≌ Over X`. -/
+noncomputable def isEquivalenceToOver (F : D ⥤ T) (X : T) [IsEquivalence F] :
+ IsEquivalence (toOver F X) :=
+ CostructuredArrow.isEquivalencePre _ _ _
+
+end CostructuredArrow
+
/-- The under category has as objects arrows with domain `X` and as morphisms commutative
triangles. -/
def Under (X : T) :=
@@ -517,4 +543,30 @@ end
end Under
+namespace StructuredArrow
+
+variable {D : Type u₂} [Category.{v₂} D]
+
+/-- Reinterpreting an `F`-structured arrow `X ⟶ F.obj d` as an arrow under `X` induces a functor
+ `StructuredArrow X F ⥤ Under X`. -/
+@[simps!]
+def toUnder (X : T) (F : D ⥤ T) : StructuredArrow X F ⥤ Under X :=
+ StructuredArrow.pre X F (𝟭 T)
+
+instance (X : T) (F : D ⥤ T) [Faithful F] : Faithful (toUnder X F) :=
+ show Faithful (StructuredArrow.pre _ _ _) from inferInstance
+
+instance (X : T) (F : D ⥤ T) [Full F] : Full (toUnder X F) :=
+ show Full (StructuredArrow.pre _ _ _) from inferInstance
+
+instance (X : T) (F : D ⥤ T) [EssSurj F] : EssSurj (toUnder X F) :=
+ show EssSurj (StructuredArrow.pre _ _ _) from inferInstance
+
+/-- An equivalence `F` induces an equivalence `StructuredArrow X F ≌ Under X`. -/
+noncomputable def isEquivalenceToUnder (X : T) (F : D ⥤ T) [IsEquivalence F] :
+ IsEquivalence (toUnder X F) :=
+ StructuredArrow.isEquivalencePre _ _ _
+
+end StructuredArrow
+
end CategoryTheory
@@ -204,6 +204,10 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
repeat (ext; simp)
#align category_theory.over.forget_reflects_iso CategoryTheory.Over.forget_reflects_iso
+/-- The identity over `X` is terminal. -/
+def mkIdTerminal : Limits.IsTerminal (mk (𝟙 X)) :=
+ CostructuredArrow.mkIdTerminal
+
instance forget_faithful : Faithful (forget X) where
#align category_theory.over.forget_faithful CategoryTheory.Over.forget_faithful
@@ -456,6 +460,10 @@ instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
repeat (ext; simp)
#align category_theory.under.forget_reflects_iso CategoryTheory.Under.forget_reflects_iso
+/-- The identity under `X` is initial. -/
+def mkIdInitial : Limits.IsInitial (mk (𝟙 X)) :=
+ StructuredArrow.mkIdInitial
+
instance forget_faithful : Faithful (forget X) where
#align category_theory.under.forget_faithful CategoryTheory.Under.forget_faithful
@@ -2,17 +2,14 @@
Copyright (c) 2019 Johan Commelin. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Johan Commelin, Bhavik Mehta
-
-! This file was ported from Lean 3 source module category_theory.over
-! leanprover-community/mathlib commit 8a318021995877a44630c898d0b2bc376fceef3b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.StructuredArrow
import Mathlib.CategoryTheory.PUnit
import Mathlib.CategoryTheory.Functor.ReflectsIso
import Mathlib.CategoryTheory.Functor.EpiMono
+#align_import category_theory.over from "leanprover-community/mathlib"@"8a318021995877a44630c898d0b2bc376fceef3b"
+
/-!
# Over and under categories
@@ -200,7 +200,7 @@ end
instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
reflects {Y Z} f t := by
- let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
+ let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -241,7 +241,7 @@ instance mono_left_of_mono {f g : Over X} (k : f ⟶ g) [Mono k] : Mono k.left :
refine' ⟨fun { Y : T } l m a => _⟩
let l' : mk (m ≫ f.hom) ⟶ f := homMk l (by
dsimp; rw [← Over.w k, ←Category.assoc, congrArg (· ≫ g.hom) a, Category.assoc])
- suffices l' = (homMk m : mk (m ≫ f.hom) ⟶ f) by apply congrArg CommaMorphism.left this
+ suffices l' = (homMk m : mk (m ≫ f.hom) ⟶ f) by apply congrArg CommaMorphism.left this
rw [← cancel_mono k]
ext
apply a
@@ -452,7 +452,7 @@ end
instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
reflects {Y Z} f t := by
- let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
+ let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
((IsIso.comp_inv_eq _).2 (Under.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -493,7 +493,7 @@ instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right :=
let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
-- Porting note: add type ascription here to `homMk m`
- suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
+ suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
rw [← cancel_epi k]; ext; apply a
#align category_theory.under.epi_right_of_epi CategoryTheory.Under.epi_right_of_epi
@@ -473,8 +473,8 @@ theorem mono_of_mono_right {f g : Under X} (k : f ⟶ g) [hk : Mono k.right] : M
#align category_theory.under.mono_of_mono_right CategoryTheory.Under.mono_of_mono_right
/--
-If `k.right` is a epimorphism, then `k` is a epimorphism. In other words, `Under.forget X` reflects
-epimorphisms.
+If `k.right` is an epimorphism, then `k` is an epimorphism. In other words, `Under.forget X`
+reflects epimorphisms.
The converse of `CategoryTheory.Under.epi_right_of_epi`.
This lemma is not an instance, to avoid loops in type class inference.
@@ -484,8 +484,8 @@ theorem epi_of_epi_right {f g : Under X} (k : f ⟶ g) [hk : Epi k.right] : Epi
#align category_theory.under.epi_of_epi_right CategoryTheory.Under.epi_of_epi_right
/--
-If `k` is a epimorphism, then `k.right` is a epimorphism. In other words, `Under.forget X` preserves
-epimorphisms.
+If `k` is an epimorphism, then `k.right` is an epimorphism. In other words, `Under.forget X`
+preserves epimorphisms.
The converse of `CategoryTheory.under.epi_of_epi_right`.
-/
instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right := by
@@ -188,19 +188,19 @@ theorem map_map_left : ((map f).map g).left = g.left :=
/-- Mapping by the identity morphism is just the identity functor. -/
def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
- NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+ NatIso.ofComponents fun X => isoMk (Iso.refl _)
#align category_theory.over.map_id CategoryTheory.Over.mapId
/-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙ map g :=
- NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+ NatIso.ofComponents fun X => isoMk (Iso.refl _)
#align category_theory.over.map_comp CategoryTheory.Over.mapComp
end
instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
reflects {Y Z} f t := by
- let g :Z ⟶ Y := Over.homMk (inv ((forget X).map f))
+ let g : Z ⟶ Y := Over.homMk (inv ((forget X).map f))
((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -273,12 +273,8 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
where
functor := iteratedSliceForward f
inverse := iteratedSliceBackward f
- unitIso :=
- NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)
- (by aesop_cat)) (by aesop_cat)) fun g => by ext; dsimp; simp
- counitIso :=
- NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by aesop_cat)) fun g =>
- by ext; dsimp; simp
+ unitIso := NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)))
+ counitIso := NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _))
#align category_theory.over.iterated_slice_equiv CategoryTheory.Over.iteratedSliceEquiv
theorem iteratedSliceForward_forget :
@@ -373,7 +369,8 @@ attribute [-simp, nolint simpNF] homMk_left_down_down
/-- Construct an isomorphism in the over category given isomorphisms of the objects whose forward
direction gives a commutative triangle.
-/
-def isoMk {f g : Under X} (hr : f.right ≅ g.right) (hw : f.hom ≫ hr.hom = g.hom) : f ≅ g :=
+def isoMk {f g : Under X} (hr : f.right ≅ g.right)
+ (hw : f.hom ≫ hr.hom = g.hom := by aesop_cat) : f ≅ g :=
StructuredArrow.isoMk hr hw
#align category_theory.under.iso_mk CategoryTheory.Under.isoMk
@@ -443,12 +440,12 @@ theorem map_map_right : ((map f).map g).right = g.right :=
/-- Mapping by the identity morphism is just the identity functor. -/
def mapId : map (𝟙 Y) ≅ 𝟭 _ :=
- NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+ NatIso.ofComponents fun X => isoMk (Iso.refl _)
#align category_theory.under.map_id CategoryTheory.Under.mapId
/-- Mapping by the composite morphism `f ≫ g` is the same as mapping by `f` then by `g`. -/
def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙ map f :=
- NatIso.ofComponents (fun X => isoMk (Iso.refl _) (by aesop_cat)) (by aesop_cat)
+ NatIso.ofComponents fun X => isoMk (Iso.refl _)
#align category_theory.under.map_comp CategoryTheory.Under.mapComp
end
by
s! (#3825)
This PR puts, with one exception, every single remaining by
that lies all by itself on its own line to the previous line, thus matching the current behaviour of start-port.sh
. The exception is when the by
begins the second or later argument to a tuple or anonymous constructor; see https://github.com/leanprover-community/mathlib4/pull/3825#discussion_r1186702599.
Essentially this is s/\n *by$/ by/g
, but with manual editing to satisfy the linter's max-100-char-line requirement. The Python style linter is also modified to catch these "isolated by
s".
@@ -330,8 +330,8 @@ namespace Under
variable {X : T}
@[ext]
-theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
- by
+theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) :
+ f = g := by
let ⟨_,b,_⟩ := f; let ⟨_,e,_⟩ := g
congr; simp only [eq_iff_true_of_subsingleton]
#align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
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.)@@ -64,7 +64,6 @@ theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.
let ⟨_,e,_⟩ := g
congr
simp only [eq_iff_true_of_subsingleton]
-
#align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
-- @[simp] : Porting note : simp can prove this
@@ -93,7 +93,7 @@ def mk {X Y : T} (f : Y ⟶ X) : Over X :=
/-- We can set up a coercion from arrows with codomain `X` to `over X`. This most likely should not
be a global instance, but it is sometimes useful. -/
-def coeFromHom {X Y : T} : Coe (Y ⟶ X) (Over X) where coe := mk
+def coeFromHom {X Y : T} : CoeOut (Y ⟶ X) (Over X) where coe := mk
#align category_theory.over.coe_from_hom CategoryTheory.Over.coeFromHom
section
This commit makes aesop_cat
and aesop_graph
terminal (i.e. they either solve the goal or fail). This appears to solve issues where non-terminal tactics, when used as auto-params, introduce unknown universe variables. See
Since there are some intended nonterminal uses of aesop_cat
, we introduce aesop_cat_nonterminal
as the nonterminal equivalent of aesop_cat
.
@@ -303,7 +303,7 @@ variable {D : Type u₂} [Category.{v₂} D]
def post (F : T ⥤ D) : Over X ⥤ Over (F.obj X)
where
obj Y := mk <| F.map Y.hom
- map f := Over.homMk (F.map f.left) (by aesop_cat; erw [← F.map_comp, w])
+ map f := Over.homMk (F.map f.left) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
#align category_theory.over.post CategoryTheory.Over.post
end
@@ -509,7 +509,7 @@ variable {D : Type u₂} [Category.{v₂} D]
@[simps]
def post {X : T} (F : T ⥤ D) : Under X ⥤ Under (F.obj X) where
obj Y := mk <| F.map Y.hom
- map f := Under.homMk (F.map f.right) (by aesop_cat; erw [← F.map_comp, w])
+ map f := Under.homMk (F.map f.right) (by aesop_cat_nonterminal; erw [← F.map_comp, w])
#align category_theory.under.post CategoryTheory.Under.post
end
vscode is already configured by .vscode/settings.json
to trim these on save. It's not clear how they've managed to stick around.
By doing this all in one PR now, it avoids getting random whitespace diffs in PRs later.
This was done with a regex search in vscode,
@@ -41,10 +41,10 @@ triangles.
See <https://stacks.math.columbia.edu/tag/001G>.
-/
def Over (X : T) :=
- CostructuredArrow (𝟭 T) X
+ CostructuredArrow (𝟭 T) X
#align category_theory.over CategoryTheory.Over
-instance (X : T) : Category (Over X) := commaCategory
+instance (X : T) : Category (Over X) := commaCategory
-- Satisfying the inhabited linter
instance Over.inhabited [Inhabited T] : Inhabited (Over (default : T))
@@ -61,14 +61,14 @@ variable {X : T}
@[ext]
theorem OverMorphism.ext {X : T} {U V : Over X} {f g : U ⟶ V} (h : f.left = g.left) : f = g := by
let ⟨_,b,_⟩ := f
- let ⟨_,e,_⟩ := g
+ let ⟨_,e,_⟩ := g
congr
simp only [eq_iff_true_of_subsingleton]
#align category_theory.over.over_morphism.ext CategoryTheory.Over.OverMorphism.ext
--- @[simp] : Porting note : simp can prove this
-theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only
+-- @[simp] : Porting note : simp can prove this
+theorem over_right (U : Over X) : U.right = ⟨⟨⟩⟩ := by simp only
#align category_theory.over.over_right CategoryTheory.Over.over_right
@[simp]
@@ -199,9 +199,9 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map f ⋙
end
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
- reflects {Y Z} f t := by
- let g :Z ⟶ Y := Over.homMk (inv ((forget X).map f))
+instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+ reflects {Y Z} f t := by
+ let g :Z ⟶ Y := Over.homMk (inv ((forget X).map f))
((asIso ((forget X).map f)).inv_comp_eq.2 (Over.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -275,7 +275,7 @@ def iteratedSliceEquiv : Over f ≌ Over f.left
functor := iteratedSliceForward f
inverse := iteratedSliceBackward f
unitIso :=
- NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)
+ NatIso.ofComponents (fun g => Over.isoMk (Over.isoMk (Iso.refl _)
(by aesop_cat)) (by aesop_cat)) fun g => by ext; dsimp; simp
counitIso :=
NatIso.ofComponents (fun g => Over.isoMk (Iso.refl _) (by aesop_cat)) fun g =>
@@ -332,13 +332,13 @@ variable {X : T}
@[ext]
theorem UnderMorphism.ext {X : T} {U V : Under X} {f g : U ⟶ V} (h : f.right = g.right) : f = g :=
- by
+ by
let ⟨_,b,_⟩ := f; let ⟨_,e,_⟩ := g
congr; simp only [eq_iff_true_of_subsingleton]
#align category_theory.under.under_morphism.ext CategoryTheory.Under.UnderMorphism.ext
-- @[simp] Porting note: simp can prove this
-theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only
+theorem under_left (U : Under X) : U.left = ⟨⟨⟩⟩ := by simp only
#align category_theory.under.under_left CategoryTheory.Under.under_left
@[simp]
@@ -454,9 +454,9 @@ def mapComp {Y Z : T} (f : X ⟶ Y) (g : Y ⟶ Z) : map (f ≫ g) ≅ map g ⋙
end
-instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
- reflects {Y Z} f t := by
- let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
+instance forget_reflects_iso : ReflectsIsomorphisms (forget X) where
+ reflects {Y Z} f t := by
+ let g : Z ⟶ Y := Under.homMk (inv ((Under.forget X).map f))
((IsIso.comp_inv_eq _).2 (Under.w f).symm)
dsimp [forget] at t
refine ⟨⟨g, ⟨?_,?_⟩⟩⟩
@@ -495,7 +495,7 @@ The converse of `CategoryTheory.under.epi_of_epi_right`.
instance epi_right_of_epi {f g : Under X} (k : f ⟶ g) [Epi k] : Epi k.right := by
refine' ⟨fun { Y : T } l m a => _⟩
let l' : g ⟶ mk (g.hom ≫ m) := homMk l (by
- dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
+ dsimp; rw [← Under.w k, Category.assoc, a, Category.assoc])
-- Porting note: add type ascription here to `homMk m`
suffices l' = (homMk m : g ⟶ mk (g.hom ≫ m)) by apply congrArg CommaMorphism.right this
rw [← cancel_epi k]; ext; apply a
@@ -517,4 +517,3 @@ end
end Under
end CategoryTheory
-
All dependencies are ported!