category_theory.subobject.mono_over
⟷
Mathlib.CategoryTheory.Subobject.MonoOver
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)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(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
@@ -335,13 +335,13 @@ theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).
#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrow
-/
-#print CategoryTheory.MonoOver.fullMap /-
-instance fullMap (f : X ⟶ Y) [Mono f] : CategoryTheory.Functor.Full (map f)
+#print CategoryTheory.MonoOver.full_map /-
+instance full_map (f : X ⟶ Y) [Mono f] : CategoryTheory.Functor.Full (map f)
where preimage g h e := by
refine' hom_mk e.left _
rw [← cancel_mono f, assoc]
apply w e
-#align category_theory.mono_over.full_map CategoryTheory.MonoOver.fullMap
+#align category_theory.mono_over.full_map CategoryTheory.MonoOver.full_map
-/
#print CategoryTheory.MonoOver.faithful_map /-
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -117,10 +117,10 @@ theorem forget_obj_hom {f} : ((forget X).obj f).Hom = f.arrow :=
#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_hom
-/
-instance : Full (forget X) :=
+instance : CategoryTheory.Functor.Full (forget X) :=
FullSubcategory.full _
-instance : Faithful (forget X) :=
+instance : CategoryTheory.Functor.Faithful (forget X) :=
FullSubcategory.faithful _
#print CategoryTheory.MonoOver.mono /-
@@ -190,7 +190,8 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
/-- Isomorphic functors `over Y ⥤ over X` lift to isomorphic functors `mono_over Y ⥤ mono_over X`.
-/
def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F₂) : lift F₁ h₁ ≅ lift F₂ h₂ :=
- fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
+ CategoryTheory.Functor.fullyFaithfulCancelRight (MonoOver.forget X)
+ (isoWhiskerLeft (MonoOver.forget Y) i)
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
-/
@@ -198,14 +199,14 @@ def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F
/-- `mono_over.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
lift F h₁ ⋙ lift G h₂ ≅ lift (F ⋙ G) fun f => h₂ ⟨_, h₁ f⟩ :=
- fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
+ CategoryTheory.Functor.fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftComp
-/
#print CategoryTheory.MonoOver.liftId /-
/-- `mono_over.lift` preserves the identity functor. -/
def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
- fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
+ CategoryTheory.Functor.fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_id CategoryTheory.MonoOver.liftId
-/
@@ -335,7 +336,7 @@ theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).
-/
#print CategoryTheory.MonoOver.fullMap /-
-instance fullMap (f : X ⟶ Y) [Mono f] : Full (map f)
+instance fullMap (f : X ⟶ Y) [Mono f] : CategoryTheory.Functor.Full (map f)
where preimage g h e := by
refine' hom_mk e.left _
rw [← cancel_mono f, assoc]
@@ -344,7 +345,7 @@ instance fullMap (f : X ⟶ Y) [Mono f] : Full (map f)
-/
#print CategoryTheory.MonoOver.faithful_map /-
-instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
+instance faithful_map (f : X ⟶ Y) [Mono f] : CategoryTheory.Functor.Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
-/
@@ -514,7 +515,7 @@ def exists (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
-/
#print CategoryTheory.MonoOver.faithful_exists /-
-instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
+instance faithful_exists (f : X ⟶ Y) : CategoryTheory.Functor.Faithful (exists f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,9 +3,9 @@ Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-/
-import Mathbin.CategoryTheory.Limits.Over
-import Mathbin.CategoryTheory.Limits.Shapes.Images
-import Mathbin.CategoryTheory.Adjunction.Reflective
+import CategoryTheory.Limits.Over
+import CategoryTheory.Limits.Shapes.Images
+import CategoryTheory.Adjunction.Reflective
#align_import category_theory.subobject.mono_over from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,16 +2,13 @@
Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.subobject.mono_over
-! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.CategoryTheory.Limits.Over
import Mathbin.CategoryTheory.Limits.Shapes.Images
import Mathbin.CategoryTheory.Adjunction.Reflective
+#align_import category_theory.subobject.mono_over from "leanprover-community/mathlib"@"ce38d86c0b2d427ce208c3cee3159cb421d2b3c4"
+
/-!
# Monomorphisms over a fixed object
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -76,37 +76,49 @@ def mk' {X A : C} (f : A ⟶ X) [hf : Mono f] : MonoOver X
#align category_theory.mono_over.mk' CategoryTheory.MonoOver.mk'
-/
+#print CategoryTheory.MonoOver.forget /-
/-- The inclusion from monomorphisms over X to morphisms over X. -/
def forget (X : C) : MonoOver X ⥤ Over X :=
fullSubcategoryInclusion _
#align category_theory.mono_over.forget CategoryTheory.MonoOver.forget
+-/
instance : Coe (MonoOver X) C where coe Y := Y.obj.left
+#print CategoryTheory.MonoOver.forget_obj_left /-
@[simp]
theorem forget_obj_left {f} : ((forget X).obj f).left = (f : C) :=
rfl
#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_left
+-/
+#print CategoryTheory.MonoOver.mk'_coe' /-
@[simp]
theorem mk'_coe' {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f : C) = A :=
rfl
#align category_theory.mono_over.mk'_coe' CategoryTheory.MonoOver.mk'_coe'
+-/
+#print CategoryTheory.MonoOver.arrow /-
/-- Convenience notation for the underlying arrow of a monomorphism over X. -/
abbrev arrow (f : MonoOver X) : (f : C) ⟶ X :=
((forget X).obj f).Hom
#align category_theory.mono_over.arrow CategoryTheory.MonoOver.arrow
+-/
+#print CategoryTheory.MonoOver.mk'_arrow /-
@[simp]
theorem mk'_arrow {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f).arrow = f :=
rfl
#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrow
+-/
+#print CategoryTheory.MonoOver.forget_obj_hom /-
@[simp]
theorem forget_obj_hom {f} : ((forget X).obj f).Hom = f.arrow :=
rfl
#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_hom
+-/
instance : Full (forget X) :=
FullSubcategory.full _
@@ -114,9 +126,11 @@ instance : Full (forget X) :=
instance : Faithful (forget X) :=
FullSubcategory.faithful _
+#print CategoryTheory.MonoOver.mono /-
instance mono (f : MonoOver X) : Mono f.arrow :=
f.property
#align category_theory.mono_over.mono CategoryTheory.MonoOver.mono
+-/
#print CategoryTheory.MonoOver.isThin /-
/-- The category of monomorphisms over X is a thin category,
@@ -153,13 +167,16 @@ def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.Hom ≫ g.ar
#align category_theory.mono_over.iso_mk CategoryTheory.MonoOver.isoMk
-/
+#print CategoryTheory.MonoOver.mk'ArrowIso /-
/-- If `f : mono_over X`, then `mk' f.arrow` is of course just `f`, but not definitionally, so we
package it as an isomorphism. -/
@[simp]
def mk'ArrowIso {X : C} (f : MonoOver X) : mk' f.arrow ≅ f :=
isoMk (Iso.refl _) (by simp)
#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIso
+-/
+#print CategoryTheory.MonoOver.lift /-
/-- Lift a functor between over categories to a functor between `mono_over` categories,
given suitable evidence that morphisms are taken to monomorphisms.
-/
@@ -170,18 +187,23 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
obj f := ⟨_, h f⟩
map _ _ k := (MonoOver.forget X).preimage ((MonoOver.forget Y ⋙ F).map k)
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
+-/
+#print CategoryTheory.MonoOver.liftIso /-
/-- Isomorphic functors `over Y ⥤ over X` lift to isomorphic functors `mono_over Y ⥤ mono_over X`.
-/
def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F₂) : lift F₁ h₁ ≅ lift F₂ h₂ :=
fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
+-/
+#print CategoryTheory.MonoOver.liftComp /-
/-- `mono_over.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
lift F h₁ ⋙ lift G h₂ ≅ lift (F ⋙ G) fun f => h₂ ⟨_, h₁ f⟩ :=
fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftComp
+-/
#print CategoryTheory.MonoOver.liftId /-
/-- `mono_over.lift` preserves the identity functor. -/
@@ -190,20 +212,25 @@ def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
#align category_theory.mono_over.lift_id CategoryTheory.MonoOver.liftId
-/
+#print CategoryTheory.MonoOver.lift_comm /-
@[simp]
theorem lift_comm (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) :
lift F h ⋙ MonoOver.forget X = MonoOver.forget Y ⋙ F :=
rfl
#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_comm
+-/
+#print CategoryTheory.MonoOver.lift_obj_arrow /-
@[simp]
theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) (f : MonoOver Y) :
((lift F h).obj f).arrow = (F.obj ((forget Y).obj f)).Hom :=
rfl
#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrow
+-/
+#print CategoryTheory.MonoOver.slice /-
/-- Monomorphisms over an object `f : over A` in an over category
are equivalent to monomorphisms over the source of `f`.
-/
@@ -218,6 +245,7 @@ def slice {A : C} {f : Over A} (h₁ h₂) : MonoOver f ≌ MonoOver f.left
MonoOver.liftComp _ _ _ _ ≪≫
MonoOver.liftIso _ _ f.iteratedSliceEquiv.counitIso ≪≫ MonoOver.liftId
#align category_theory.mono_over.slice CategoryTheory.MonoOver.slice
+-/
section Pullback
@@ -250,17 +278,21 @@ def pullbackId : pullback (𝟙 X) ≅ 𝟭 _ :=
#align category_theory.mono_over.pullback_id CategoryTheory.MonoOver.pullbackId
-/
+#print CategoryTheory.MonoOver.pullback_obj_left /-
@[simp]
theorem pullback_obj_left (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g : C) = Limits.pullback g.arrow f :=
rfl
#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_left
+-/
+#print CategoryTheory.MonoOver.pullback_obj_arrow /-
@[simp]
theorem pullback_obj_arrow (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g).arrow = pullback.snd :=
rfl
#align category_theory.mono_over.pullback_obj_arrow CategoryTheory.MonoOver.pullback_obj_arrow
+-/
end Pullback
@@ -291,15 +323,19 @@ def mapId : map (𝟙 X) ≅ 𝟭 _ :=
#align category_theory.mono_over.map_id CategoryTheory.MonoOver.mapId
-/
+#print CategoryTheory.MonoOver.map_obj_left /-
@[simp]
theorem map_obj_left (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g : C) = g.obj.left :=
rfl
#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_left
+-/
+#print CategoryTheory.MonoOver.map_obj_arrow /-
@[simp]
theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).arrow = g.arrow ≫ f :=
rfl
#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrow
+-/
#print CategoryTheory.MonoOver.fullMap /-
instance fullMap (f : X ⟶ Y) [Mono f] : Full (map f)
@@ -315,6 +351,7 @@ instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
-/
+#print CategoryTheory.MonoOver.mapIso /-
/-- Isomorphic objects have equivalent `mono_over` categories.
-/
@[simps]
@@ -325,11 +362,13 @@ def mapIso {A B : C} (e : A ≅ B) : MonoOver A ≌ MonoOver B
unitIso := ((mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ mapId).symm
counitIso := (mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ mapId
#align category_theory.mono_over.map_iso CategoryTheory.MonoOver.mapIso
+-/
section
variable (X)
+#print CategoryTheory.MonoOver.congr /-
/-- An equivalence of categories `e` between `C` and `D` induces an equivalence between
`mono_over X` and `mono_over (e.functor.obj X)` whenever `X` is an object of `C`. -/
@[simps]
@@ -342,6 +381,7 @@ def congr (e : C ≌ D) : MonoOver X ≌ MonoOver (e.Functor.obj X)
unitIso := NatIso.ofComponents (fun Y => isoMk (e.unitIso.app Y) (by tidy)) (by tidy)
counitIso := NatIso.ofComponents (fun Y => isoMk (e.counitIso.app Y) (by tidy)) (by tidy)
#align category_theory.mono_over.congr CategoryTheory.MonoOver.congr
+-/
end
@@ -380,10 +420,12 @@ def imageMonoOver (f : X ⟶ Y) [HasImage f] : MonoOver Y :=
#align category_theory.mono_over.image_mono_over CategoryTheory.MonoOver.imageMonoOver
-/
+#print CategoryTheory.MonoOver.imageMonoOver_arrow /-
@[simp]
theorem imageMonoOver_arrow (f : X ⟶ Y) [HasImage f] : (imageMonoOver f).arrow = image.ι f :=
rfl
#align category_theory.mono_over.image_mono_over_arrow CategoryTheory.MonoOver.imageMonoOver_arrow
+-/
end Image
@@ -445,15 +487,19 @@ instance : IsRightAdjoint (forget X) where
left := image
adj := imageForgetAdj
+#print CategoryTheory.MonoOver.reflective /-
instance reflective : Reflective (forget X) where
#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflective
+-/
+#print CategoryTheory.MonoOver.forgetImage /-
/-- Forgetting that a monomorphism over `X` is a monomorphism, then taking its image,
is the identity functor.
-/
def forgetImage : forget X ⋙ image ≅ 𝟭 (MonoOver X) :=
asIso (Adjunction.counit imageForgetAdj)
#align category_theory.mono_over.forget_image CategoryTheory.MonoOver.forgetImage
+-/
end Image
@@ -461,16 +507,21 @@ section Exists
variable [HasImages C]
+#print CategoryTheory.MonoOver.exists /-
/-- In the case where `f` is not a monomorphism but `C` has images,
we can still take the "forward map" under it, which agrees with `mono_over.map f`.
-/
def exists (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
+-/
+#print CategoryTheory.MonoOver.faithful_exists /-
instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
+-/
+#print CategoryTheory.MonoOver.existsIsoMap /-
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
@@ -492,12 +543,15 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
image_mono_iso_source_hom_self]
apply image.lift_fac)
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
+-/
+#print CategoryTheory.MonoOver.existsPullbackAdj /-
/-- `exists` is adjoint to `pullback` when images exist -/
def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (𝟭 _) ((Over.mapPullbackAdj f).comp imageForgetAdj)
(Iso.refl _) (Iso.refl _)
#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdj
+-/
end Exists
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -59,7 +59,8 @@ This isn't skeletal, so it's not a partial order.
Later we define `subobject X` as the quotient of this by isomorphisms.
-/
def MonoOver (X : C) :=
- FullSubcategory fun f : Over X => Mono f.Hom deriving Category
+ FullSubcategory fun f : Over X => Mono f.Hom
+deriving Category
#align category_theory.mono_over CategoryTheory.MonoOver
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -75,12 +75,6 @@ def mk' {X A : C} (f : A ⟶ X) [hf : Mono f] : MonoOver X
#align category_theory.mono_over.mk' CategoryTheory.MonoOver.mk'
-/
-/- warning: category_theory.mono_over.forget -> CategoryTheory.MonoOver.forget is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget CategoryTheory.MonoOver.forgetₓ'. -/
/-- The inclusion from monomorphisms over X to morphisms over X. -/
def forget (X : C) : MonoOver X ⥤ Over X :=
fullSubcategoryInclusion _
@@ -88,50 +82,26 @@ def forget (X : C) : MonoOver X ⥤ Over X :=
instance : Coe (MonoOver X) C where coe Y := Y.obj.left
-/- warning: category_theory.mono_over.forget_obj_left -> CategoryTheory.MonoOver.forget_obj_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_leftₓ'. -/
@[simp]
theorem forget_obj_left {f} : ((forget X).obj f).left = (f : C) :=
rfl
#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_left
-/- warning: category_theory.mono_over.mk'_coe' -> CategoryTheory.MonoOver.mk'_coe' is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) A
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf))) A
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_coe' CategoryTheory.MonoOver.mk'_coe'ₓ'. -/
@[simp]
theorem mk'_coe' {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f : C) = A :=
rfl
#align category_theory.mono_over.mk'_coe' CategoryTheory.MonoOver.mk'_coe'
-/- warning: category_theory.mono_over.arrow -> CategoryTheory.MonoOver.arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) X
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) X
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.arrow CategoryTheory.MonoOver.arrowₓ'. -/
/-- Convenience notation for the underlying arrow of a monomorphism over X. -/
abbrev arrow (f : MonoOver X) : (f : C) ⟶ X :=
((forget X).obj f).Hom
#align category_theory.mono_over.arrow CategoryTheory.MonoOver.arrow
-/- warning: category_theory.mono_over.mk'_arrow -> CategoryTheory.MonoOver.mk'_arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) f
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf))) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) f
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrowₓ'. -/
@[simp]
theorem mk'_arrow {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f).arrow = f :=
rfl
#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrow
-/- warning: category_theory.mono_over.forget_obj_hom -> CategoryTheory.MonoOver.forget_obj_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_homₓ'. -/
@[simp]
theorem forget_obj_hom {f} : ((forget X).obj f).Hom = f.arrow :=
rfl
@@ -143,12 +113,6 @@ instance : Full (forget X) :=
instance : Faithful (forget X) :=
FullSubcategory.faithful _
-/- warning: category_theory.mono_over.mono -> CategoryTheory.MonoOver.mono is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Mono.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) X (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) X (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mono CategoryTheory.MonoOver.monoₓ'. -/
instance mono (f : MonoOver X) : Mono f.arrow :=
f.property
#align category_theory.mono_over.mono CategoryTheory.MonoOver.mono
@@ -188,12 +152,6 @@ def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.Hom ≫ g.ar
#align category_theory.mono_over.iso_mk CategoryTheory.MonoOver.isoMk
-/
-/- warning: category_theory.mono_over.mk'_arrow_iso -> CategoryTheory.MonoOver.mk'ArrowIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f) (CategoryTheory.MonoOver.mono.{u1, u2} C _inst_1 X f)) f
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f) (CategoryTheory.MonoOver.mono.{u1, u2} C _inst_1 X f)) f
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIsoₓ'. -/
/-- If `f : mono_over X`, then `mk' f.arrow` is of course just `f`, but not definitionally, so we
package it as an isomorphism. -/
@[simp]
@@ -201,9 +159,6 @@ def mk'ArrowIso {X : C} (f : MonoOver X) : mk' f.arrow ≅ f :=
isoMk (Iso.refl _) (by simp)
#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIso
-/- warning: category_theory.mono_over.lift -> CategoryTheory.MonoOver.lift is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift CategoryTheory.MonoOver.liftₓ'. -/
/-- Lift a functor between over categories to a functor between `mono_over` categories,
given suitable evidence that morphisms are taken to monomorphisms.
-/
@@ -215,18 +170,12 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
map _ _ k := (MonoOver.forget X).preimage ((MonoOver.forget Y ⋙ F).map k)
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
-/- warning: category_theory.mono_over.lift_iso -> CategoryTheory.MonoOver.liftIso is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIsoₓ'. -/
/-- Isomorphic functors `over Y ⥤ over X` lift to isomorphic functors `mono_over Y ⥤ mono_over X`.
-/
def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F₂) : lift F₁ h₁ ≅ lift F₂ h₂ :=
fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
-/- warning: category_theory.mono_over.lift_comp -> CategoryTheory.MonoOver.liftComp is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftCompₓ'. -/
/-- `mono_over.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
lift F h₁ ⋙ lift G h₂ ≅ lift (F ⋙ G) fun f => h₂ ⟨_, h₁ f⟩ :=
@@ -240,9 +189,6 @@ def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
#align category_theory.mono_over.lift_id CategoryTheory.MonoOver.liftId
-/
-/- warning: category_theory.mono_over.lift_comm -> CategoryTheory.MonoOver.lift_comm is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_commₓ'. -/
@[simp]
theorem lift_comm (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) :
@@ -250,9 +196,6 @@ theorem lift_comm (F : Over Y ⥤ Over X)
rfl
#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_comm
-/- warning: category_theory.mono_over.lift_obj_arrow -> CategoryTheory.MonoOver.lift_obj_arrow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrowₓ'. -/
@[simp]
theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) (f : MonoOver Y) :
@@ -260,9 +203,6 @@ theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
rfl
#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrow
-/- warning: category_theory.mono_over.slice -> CategoryTheory.MonoOver.slice is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.slice CategoryTheory.MonoOver.sliceₓ'. -/
/-- Monomorphisms over an object `f : over A` in an over category
are equivalent to monomorphisms over the source of `f`.
-/
@@ -309,18 +249,12 @@ def pullbackId : pullback (𝟙 X) ≅ 𝟭 _ :=
#align category_theory.mono_over.pullback_id CategoryTheory.MonoOver.pullbackId
-/
-/- warning: category_theory.mono_over.pullback_obj_left -> CategoryTheory.MonoOver.pullback_obj_left is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_leftₓ'. -/
@[simp]
theorem pullback_obj_left (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g : C) = Limits.pullback g.arrow f :=
rfl
#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_left
-/- warning: category_theory.mono_over.pullback_obj_arrow -> CategoryTheory.MonoOver.pullback_obj_arrow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_arrow CategoryTheory.MonoOver.pullback_obj_arrowₓ'. -/
@[simp]
theorem pullback_obj_arrow (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g).arrow = pullback.snd :=
@@ -356,20 +290,11 @@ def mapId : map (𝟙 X) ≅ 𝟭 _ :=
#align category_theory.mono_over.map_id CategoryTheory.MonoOver.mapId
-/
-/- warning: category_theory.mono_over.map_obj_left -> CategoryTheory.MonoOver.map_obj_left is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g))) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g))
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_leftₓ'. -/
@[simp]
theorem map_obj_left (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g : C) = g.obj.left :=
rfl
#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_left
-/- warning: category_theory.mono_over.map_obj_arrow -> CategoryTheory.MonoOver.map_obj_arrow is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrowₓ'. -/
@[simp]
theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).arrow = g.arrow ≫ f :=
rfl
@@ -389,12 +314,6 @@ instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
-/
-/- warning: category_theory.mono_over.map_iso -> CategoryTheory.MonoOver.mapIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {B : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 A B) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 A) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 B) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 B))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {B : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 A B) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 B) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 B))
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_iso CategoryTheory.MonoOver.mapIsoₓ'. -/
/-- Isomorphic objects have equivalent `mono_over` categories.
-/
@[simps]
@@ -410,12 +329,6 @@ section
variable (X)
-/- warning: category_theory.mono_over.congr -> CategoryTheory.MonoOver.congr is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (e : CategoryTheory.Equivalence.{u1, u2, u3, u4} C _inst_1 D _inst_2), CategoryTheory.Equivalence.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C _inst_1 D _inst_2 e) X)) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C _inst_1 D _inst_2 e) X))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (e : CategoryTheory.Equivalence.{u1, u2, u3, u4} C D _inst_1 _inst_2), CategoryTheory.Equivalence.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C D _inst_1 _inst_2 e)) X)) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C D _inst_1 _inst_2 e)) X))
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.congr CategoryTheory.MonoOver.congrₓ'. -/
/-- An equivalence of categories `e` between `C` and `D` induces an equivalence between
`mono_over X` and `mono_over (e.functor.obj X)` whenever `X` is an object of `C`. -/
@[simps]
@@ -466,12 +379,6 @@ def imageMonoOver (f : X ⟶ Y) [HasImage f] : MonoOver Y :=
#align category_theory.mono_over.image_mono_over CategoryTheory.MonoOver.imageMonoOver
-/
-/- warning: category_theory.mono_over.image_mono_over_arrow -> CategoryTheory.MonoOver.imageMonoOver_arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasImage.{u1, u2} C _inst_1 X Y f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) (CategoryTheory.Limits.image.ι.{u1, u2} C _inst_1 X Y f _inst_4)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasImage.{u1, u2} C _inst_1 X Y f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4))) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) (CategoryTheory.Limits.image.ι.{u1, u2} C _inst_1 X Y f _inst_4)
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.image_mono_over_arrow CategoryTheory.MonoOver.imageMonoOver_arrowₓ'. -/
@[simp]
theorem imageMonoOver_arrow (f : X ⟶ Y) [HasImage f] : (imageMonoOver f).arrow = image.ι f :=
rfl
@@ -537,18 +444,9 @@ instance : IsRightAdjoint (forget X) where
left := image
adj := imageForgetAdj
-/- warning: category_theory.mono_over.reflective -> CategoryTheory.MonoOver.reflective is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Reflective.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Reflective.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflectiveₓ'. -/
instance reflective : Reflective (forget X) where
#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflective
-/- warning: category_theory.mono_over.forget_image -> CategoryTheory.MonoOver.forgetImage is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_image CategoryTheory.MonoOver.forgetImageₓ'. -/
/-- Forgetting that a monomorphism over `X` is a monomorphism, then taking its image,
is the identity functor.
-/
@@ -562,12 +460,6 @@ section Exists
variable [HasImages C]
-/- warning: category_theory.mono_over.exists -> CategoryTheory.MonoOver.exists is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists CategoryTheory.MonoOver.existsₓ'. -/
/-- In the case where `f` is not a monomorphism but `C` has images,
we can still take the "forward map" under it, which agrees with `mono_over.map f`.
-/
@@ -575,18 +467,9 @@ def exists (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
-/- warning: category_theory.mono_over.faithful_exists -> CategoryTheory.MonoOver.faithful_exists is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f)
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_existsₓ'. -/
instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
-/- warning: category_theory.mono_over.exists_iso_map -> CategoryTheory.MonoOver.existsIsoMap is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMapₓ'. -/
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
@@ -609,9 +492,6 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
apply image.lift_fac)
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
-/- warning: category_theory.mono_over.exists_pullback_adj -> CategoryTheory.MonoOver.existsPullbackAdj is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdjₓ'. -/
/-- `exists` is adjoint to `pullback` when images exist -/
def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (𝟭 _) ((Over.mapPullbackAdj f).comp imageForgetAdj)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -421,14 +421,9 @@ Case conversion may be inaccurate. Consider using '#align category_theory.mono_o
@[simps]
def congr (e : C ≌ D) : MonoOver X ≌ MonoOver (e.Functor.obj X)
where
- Functor :=
- lift (Over.post e.Functor) fun f => by
- dsimp
- infer_instance
+ Functor := lift (Over.post e.Functor) fun f => by dsimp; infer_instance
inverse :=
- (lift (Over.post e.inverse) fun f => by
- dsimp
- infer_instance) ⋙
+ (lift (Over.post e.inverse) fun f => by dsimp; infer_instance) ⋙
(mapIso (e.unitIso.symm.app X)).Functor
unitIso := NatIso.ofComponents (fun Y => isoMk (e.unitIso.app Y) (by tidy)) (by tidy)
counitIso := NatIso.ofComponents (fun Y => isoMk (e.counitIso.app Y) (by tidy)) (by tidy)
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -89,10 +89,7 @@ def forget (X : C) : MonoOver X ⥤ Over X :=
instance : Coe (MonoOver X) C where coe Y := Y.obj.left
/- warning: category_theory.mono_over.forget_obj_left -> CategoryTheory.MonoOver.forget_obj_left is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_leftₓ'. -/
@[simp]
theorem forget_obj_left {f} : ((forget X).obj f).left = (f : C) :=
@@ -133,10 +130,7 @@ theorem mk'_arrow {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f).arrow = f :=
#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrow
/- warning: category_theory.mono_over.forget_obj_hom -> CategoryTheory.MonoOver.forget_obj_hom is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_homₓ'. -/
@[simp]
theorem forget_obj_hom {f} : ((forget X).obj f).Hom = f.arrow :=
@@ -208,10 +202,7 @@ def mk'ArrowIso {X : C} (f : MonoOver X) : mk' f.arrow ≅ f :=
#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIso
/- warning: category_theory.mono_over.lift -> CategoryTheory.MonoOver.lift is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)), (forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) -> (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)), (forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) -> (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift CategoryTheory.MonoOver.liftₓ'. -/
/-- Lift a functor between over categories to a functor between `mono_over` categories,
given suitable evidence that morphisms are taken to monomorphisms.
@@ -225,10 +216,7 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
/- warning: category_theory.mono_over.lift_iso -> CategoryTheory.MonoOver.liftIso is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} {F₁ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)} {F₂ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)} (h₁ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))), (CategoryTheory.Iso.{max (max u4 u2) u1, max u2 u1 (max u4 u2) u3 u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) F₁ F₂) -> (CategoryTheory.Iso.{max (max u4 u2) u1, max u2 u1 (max u4 u2) u3 u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X)) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₁ h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₂ h₂))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} {F₁ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)} {F₂ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)} (h₁ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))), (CategoryTheory.Iso.{max (max u4 u1) u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) F₁ F₂) -> (CategoryTheory.Iso.{max (max u4 u1) u2, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X)) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₁ h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₂ h₂))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIsoₓ'. -/
/-- Isomorphic functors `over Y ⥤ over X` lift to isomorphic functors `mono_over Y ⥤ mono_over X`.
-/
@@ -237,10 +225,7 @@ def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
/- warning: category_theory.mono_over.lift_comp -> CategoryTheory.MonoOver.liftComp is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : C} {Z : C} {Y : D} (F : CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y)) (G : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z)) (h₁ : forall (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X), CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))), CategoryTheory.Iso.{max u3 u1, max u3 u1} (CategoryTheory.Functor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z)) (CategoryTheory.Functor.category.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z)) (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z) (CategoryTheory.MonoOver.lift.{u2, u1, u4, u3} D _inst_2 Y C _inst_1 X F h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 Z D _inst_2 Y G h₂)) (CategoryTheory.MonoOver.lift.{u1, u1, u3, u3} C _inst_1 Z C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) F G) (CategoryTheory.MonoOver.liftComp._proof_1.{u3, u4, u1, u2} C _inst_1 D _inst_2 X Z Y F G h₁ h₂))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : C} {Z : C} {Y : D} (F : CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y)) (G : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z)) (h₁ : forall (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X), CategoryTheory.Mono.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (Prefunctor.obj.{succ u2, succ u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y)) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))), CategoryTheory.Iso.{max u3 u1, max u3 u1} (CategoryTheory.Functor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z)) (CategoryTheory.Functor.category.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z)) (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.lift.{u2, u1, u4, u3} D _inst_2 Y C _inst_1 X F h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 Z D _inst_2 Y G h₂)) (CategoryTheory.MonoOver.lift.{u1, u1, u3, u3} C _inst_1 Z C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) F G) (fun (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) => h₂ (CategoryTheory.FullSubcategory.mk.{max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (Prefunctor.obj.{succ u2, succ u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y)) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)) (h₁ f))))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftCompₓ'. -/
/-- `mono_over.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
@@ -256,10 +241,7 @@ def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
-/
/- warning: category_theory.mono_over.lift_comm -> CategoryTheory.MonoOver.lift_comm is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))), Eq.{succ (max u2 u1)} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u1, u2, u2} C _inst_1 X C _inst_1 Y F h) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) F)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) f)))), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u1, u2, u2} C _inst_1 X C _inst_1 Y F h) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) F)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_commₓ'. -/
@[simp]
theorem lift_comm (F : Over Y ⥤ Over X)
@@ -269,10 +251,7 @@ theorem lift_comm (F : Over Y ⥤ Over X)
#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_comm
/- warning: category_theory.mono_over.lift_obj_arrow -> CategoryTheory.MonoOver.lift_obj_arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) ((fun (a : Type.{max u3 u1}) (b : Type.{u3}) [self : HasLiftT.{succ (max u3 u1), succ u3} a b] => self.0) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (HasLiftT.mk.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (coeBase.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u3} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h) f)) X) (CategoryTheory.MonoOver.arrow.{u1, u3} C _inst_1 X (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))
-but is expected to have type
- forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h)) f))) X) (CategoryTheory.MonoOver.arrow.{u1, u3} C _inst_1 X (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h)) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrowₓ'. -/
@[simp]
theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
@@ -282,10 +261,7 @@ theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrow
/- warning: category_theory.mono_over.slice -> CategoryTheory.MonoOver.slice is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {f : CategoryTheory.Over.{u1, u2} C _inst_1 A}, (forall (f_1 : CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) -> (forall (f_1 : CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)), CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {f : CategoryTheory.Over.{u1, u2} C _inst_1 A}, (forall (f_1 : CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f), CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_1)))) -> (forall (f_1 : CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)), CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.slice CategoryTheory.MonoOver.sliceₓ'. -/
/-- Monomorphisms over an object `f : over A` in an over category
are equivalent to monomorphisms over the source of `f`.
@@ -334,10 +310,7 @@ def pullbackId : pullback (𝟙 X) ≅ 𝟭 _ :=
-/
/- warning: category_theory.mono_over.pullback_obj_left -> CategoryTheory.MonoOver.pullback_obj_left is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) (CategoryTheory.Limits.pullback.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) g) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{0, 0, u1, u2} C _inst_1 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) _inst_3 (CategoryTheory.Limits.cospan.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) g) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f)))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g))) (CategoryTheory.Limits.pullback.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{0, 0, u1, u2} C _inst_1 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) _inst_3 (CategoryTheory.Limits.cospan.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_leftₓ'. -/
@[simp]
theorem pullback_obj_left (f : X ⟶ Y) (g : MonoOver Y) :
@@ -346,10 +319,7 @@ theorem pullback_obj_left (f : X ⟶ Y) (g : MonoOver Y) :
#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_left
/- warning: category_theory.mono_over.pullback_obj_arrow -> CategoryTheory.MonoOver.pullback_obj_arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) (CategoryTheory.Limits.pullback.snd.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g))) X (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g)) f (CategoryTheory.Over.pullback._proof_1.{u2, u1} C _inst_1 _inst_3 X Y f (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g)))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g))) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g)) (CategoryTheory.Limits.pullback.snd.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g))) X (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g)) f (CategoryTheory.Over.pullback.proof_1.{u1, u2} C _inst_1 _inst_3 X Y f (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g)))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_arrow CategoryTheory.MonoOver.pullback_obj_arrowₓ'. -/
@[simp]
theorem pullback_obj_arrow (f : X ⟶ Y) (g : MonoOver Y) :
@@ -398,10 +368,7 @@ theorem map_obj_left (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g :
#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_left
/- warning: category_theory.mono_over.map_obj_arrow -> CategoryTheory.MonoOver.map_obj_arrow is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X g) f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g))) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X g) f)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrowₓ'. -/
@[simp]
theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).arrow = g.arrow ≫ f :=
@@ -585,10 +552,7 @@ instance reflective : Reflective (forget X) where
#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflective
/- warning: category_theory.mono_over.forget_image -> CategoryTheory.MonoOver.forgetImage is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.image.{u1, u2} C _inst_1 X _inst_3)) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))))
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.image.{u1, u2} C _inst_1 X _inst_3)) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_image CategoryTheory.MonoOver.forgetImageₓ'. -/
/-- Forgetting that a monomorphism over `X` is a monomorphism, then taking its image,
is the identity functor.
@@ -626,10 +590,7 @@ instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
/- warning: category_theory.mono_over.exists_iso_map -> CategoryTheory.MonoOver.existsIsoMap is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMapₓ'. -/
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
@@ -654,10 +615,7 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
/- warning: category_theory.mono_over.exists_pullback_adj -> CategoryTheory.MonoOver.existsPullbackAdj is a dubious translation:
-lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
-but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
+<too large>
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdjₓ'. -/
/-- `exists` is adjoint to `pullback` when images exist -/
def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists f ⊣ pullback f :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -171,7 +171,7 @@ instance isThin {X : C} : Quiver.IsThin (MonoOver X) := fun f g =>
-/
#print CategoryTheory.MonoOver.w /-
-@[reassoc.1]
+@[reassoc]
theorem w {f g : MonoOver X} (k : f ⟶ g) : k.left ≫ g.arrow = f.arrow :=
Over.w _
#align category_theory.mono_over.w CategoryTheory.MonoOver.w
mathlib commit https://github.com/leanprover-community/mathlib/commit/d4437c68c8d350fc9d4e95e1e174409db35e30d7
@@ -603,37 +603,37 @@ section Exists
variable [HasImages C]
-/- warning: category_theory.mono_over.exists -> CategoryTheory.MonoOver.exists_ is a dubious translation:
+/- warning: category_theory.mono_over.exists -> CategoryTheory.MonoOver.exists is a dubious translation:
lean 3 declaration is
forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y))
but is expected to have type
forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))
-Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists_ₓ'. -/
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists CategoryTheory.MonoOver.existsₓ'. -/
/-- In the case where `f` is not a monomorphism but `C` has images,
we can still take the "forward map" under it, which agrees with `mono_over.map f`.
-/
-def exists_ (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
+def exists (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
-#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists_
+#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
/- warning: category_theory.mono_over.faithful_exists -> CategoryTheory.MonoOver.faithful_exists is a dubious translation:
lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f)
but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f)
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_existsₓ'. -/
-instance faithful_exists (f : X ⟶ Y) : Faithful (exists_ f) where
+instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
/- warning: category_theory.mono_over.exists_iso_map -> CategoryTheory.MonoOver.existsIsoMap is a dubious translation:
lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMapₓ'. -/
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
-def existsIsoMap (f : X ⟶ Y) [Mono f] : exists_ f ≅ map f :=
+def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
NatIso.ofComponents
(by
intro Z
@@ -655,12 +655,12 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists_ f ≅ map f :=
/- warning: category_theory.mono_over.exists_pullback_adj -> CategoryTheory.MonoOver.existsPullbackAdj is a dubious translation:
lean 3 declaration is
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
but is expected to have type
- forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdjₓ'. -/
/-- `exists` is adjoint to `pullback` when images exist -/
-def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists_ f ⊣ pullback f :=
+def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (𝟭 _) ((Over.mapPullbackAdj f).comp imageForgetAdj)
(Iso.refl _) (Iso.refl _)
#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdj
mathlib commit https://github.com/leanprover-community/mathlib/commit/cd8fafa2fac98e1a67097e8a91ad9901cfde48af
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
! This file was ported from Lean 3 source module category_theory.subobject.mono_over
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit ce38d86c0b2d427ce208c3cee3159cb421d2b3c4
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -15,6 +15,9 @@ import Mathbin.CategoryTheory.Adjunction.Reflective
/-!
# Monomorphisms over a fixed object
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
As preparation for defining `subobject X`, we set up the theory for
`mono_over X := {f : over X // mono f.hom}`.
mathlib commit https://github.com/leanprover-community/mathlib/commit/0e2aab2b0d521f060f62a14d2cf2e2c54e8491d6
@@ -49,6 +49,7 @@ variable {C : Type u₁} [Category.{v₁} C] {X Y Z : C}
variable {D : Type u₂} [Category.{v₂} D]
+#print CategoryTheory.MonoOver /-
/-- The category of monomorphisms into `X` as a full subcategory of the over category.
This isn't skeletal, so it's not a partial order.
@@ -57,9 +58,11 @@ Later we define `subobject X` as the quotient of this by isomorphisms.
def MonoOver (X : C) :=
FullSubcategory fun f : Over X => Mono f.Hom deriving Category
#align category_theory.mono_over CategoryTheory.MonoOver
+-/
namespace MonoOver
+#print CategoryTheory.MonoOver.mk' /-
/-- Construct a `mono_over X`. -/
@[simps]
def mk' {X A : C} (f : A ⟶ X) [hf : Mono f] : MonoOver X
@@ -67,7 +70,14 @@ def mk' {X A : C} (f : A ⟶ X) [hf : Mono f] : MonoOver X
obj := Over.mk f
property := hf
#align category_theory.mono_over.mk' CategoryTheory.MonoOver.mk'
+-/
+/- warning: category_theory.mono_over.forget -> CategoryTheory.MonoOver.forget is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] (X : C), CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget CategoryTheory.MonoOver.forgetₓ'. -/
/-- The inclusion from monomorphisms over X to morphisms over X. -/
def forget (X : C) : MonoOver X ⥤ Over X :=
fullSubcategoryInclusion _
@@ -75,26 +85,56 @@ def forget (X : C) : MonoOver X ⥤ Over X :=
instance : Coe (MonoOver X) C where coe Y := Y.obj.left
+/- warning: category_theory.mono_over.forget_obj_left -> CategoryTheory.MonoOver.forget_obj_left is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_leftₓ'. -/
@[simp]
theorem forget_obj_left {f} : ((forget X).obj f).left = (f : C) :=
rfl
#align category_theory.mono_over.forget_obj_left CategoryTheory.MonoOver.forget_obj_left
+/- warning: category_theory.mono_over.mk'_coe' -> CategoryTheory.MonoOver.mk'_coe' is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) A
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf))) A
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_coe' CategoryTheory.MonoOver.mk'_coe'ₓ'. -/
@[simp]
theorem mk'_coe' {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f : C) = A :=
rfl
#align category_theory.mono_over.mk'_coe' CategoryTheory.MonoOver.mk'_coe'
+/- warning: category_theory.mono_over.arrow -> CategoryTheory.MonoOver.arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) X
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) X
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.arrow CategoryTheory.MonoOver.arrowₓ'. -/
/-- Convenience notation for the underlying arrow of a monomorphism over X. -/
abbrev arrow (f : MonoOver X) : (f : C) ⟶ X :=
((forget X).obj f).Hom
#align category_theory.mono_over.arrow CategoryTheory.MonoOver.arrow
+/- warning: category_theory.mono_over.mk'_arrow -> CategoryTheory.MonoOver.mk'_arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) f
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {A : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) A X) [hf : CategoryTheory.Mono.{u1, u2} C _inst_1 A X f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf))) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X A f hf)) f
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrowₓ'. -/
@[simp]
theorem mk'_arrow {X A : C} (f : A ⟶ X) [hf : Mono f] : (mk' f).arrow = f :=
rfl
#align category_theory.mono_over.mk'_arrow CategoryTheory.MonoOver.mk'_arrow
+/- warning: category_theory.mono_over.forget_obj_hom -> CategoryTheory.MonoOver.forget_obj_hom is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X}, Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_homₓ'. -/
@[simp]
theorem forget_obj_hom {f} : ((forget X).obj f).Hom = f.arrow :=
rfl
@@ -106,10 +146,17 @@ instance : Full (forget X) :=
instance : Faithful (forget X) :=
FullSubcategory.faithful _
+/- warning: category_theory.mono_over.mono -> CategoryTheory.MonoOver.mono is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Mono.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) X (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) X (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mono CategoryTheory.MonoOver.monoₓ'. -/
instance mono (f : MonoOver X) : Mono f.arrow :=
f.property
#align category_theory.mono_over.mono CategoryTheory.MonoOver.mono
+#print CategoryTheory.MonoOver.isThin /-
/-- The category of monomorphisms over X is a thin category,
which makes defining its skeleton easy. -/
instance isThin {X : C} : Quiver.IsThin (MonoOver X) := fun f g =>
@@ -118,17 +165,23 @@ instance isThin {X : C} : Quiver.IsThin (MonoOver X) := fun f g =>
ext1
erw [← cancel_mono g.arrow, over.w h₁, over.w h₂]⟩
#align category_theory.mono_over.is_thin CategoryTheory.MonoOver.isThin
+-/
+#print CategoryTheory.MonoOver.w /-
@[reassoc.1]
theorem w {f g : MonoOver X} (k : f ⟶ g) : k.left ≫ g.arrow = f.arrow :=
Over.w _
#align category_theory.mono_over.w CategoryTheory.MonoOver.w
+-/
+#print CategoryTheory.MonoOver.homMk /-
/-- Convenience constructor for a morphism in monomorphisms over `X`. -/
abbrev homMk {f g : MonoOver X} (h : f.obj.left ⟶ g.obj.left) (w : h ≫ g.arrow = f.arrow) : f ⟶ g :=
Over.homMk h w
#align category_theory.mono_over.hom_mk CategoryTheory.MonoOver.homMk
+-/
+#print CategoryTheory.MonoOver.isoMk /-
/-- Convenience constructor for an isomorphism in monomorphisms over `X`. -/
@[simps]
def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.Hom ≫ g.arrow = f.arrow) : f ≅ g
@@ -136,7 +189,14 @@ def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.Hom ≫ g.ar
Hom := homMk h.Hom w
inv := homMk h.inv (by rw [h.inv_comp_eq, w])
#align category_theory.mono_over.iso_mk CategoryTheory.MonoOver.isoMk
+-/
+/- warning: category_theory.mono_over.mk'_arrow_iso -> CategoryTheory.MonoOver.mk'ArrowIso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) f) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f) (CategoryTheory.MonoOver.mono.{u1, u2} C _inst_1 X f)) f
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), CategoryTheory.Iso.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.mk'.{u1, u2} C _inst_1 X (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) f)) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X f) (CategoryTheory.MonoOver.mono.{u1, u2} C _inst_1 X f)) f
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIsoₓ'. -/
/-- If `f : mono_over X`, then `mk' f.arrow` is of course just `f`, but not definitionally, so we
package it as an isomorphism. -/
@[simp]
@@ -144,6 +204,12 @@ def mk'ArrowIso {X : C} (f : MonoOver X) : mk' f.arrow ≅ f :=
isoMk (Iso.refl _) (by simp)
#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIso
+/- warning: category_theory.mono_over.lift -> CategoryTheory.MonoOver.lift is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)), (forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) -> (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)), (forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) -> (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift CategoryTheory.MonoOver.liftₓ'. -/
/-- Lift a functor between over categories to a functor between `mono_over` categories,
given suitable evidence that morphisms are taken to monomorphisms.
-/
@@ -155,23 +221,43 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
map _ _ k := (MonoOver.forget X).preimage ((MonoOver.forget Y ⋙ F).map k)
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
+/- warning: category_theory.mono_over.lift_iso -> CategoryTheory.MonoOver.liftIso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} {F₁ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)} {F₂ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)} (h₁ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₁ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F₂ (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))), (CategoryTheory.Iso.{max (max u4 u2) u1, max u2 u1 (max u4 u2) u3 u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) F₁ F₂) -> (CategoryTheory.Iso.{max (max u4 u2) u1, max u2 u1 (max u4 u2) u3 u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X)) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₁ h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₂ h₂))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} {F₁ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)} {F₂ : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)} (h₁ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₁) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F₂) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))), (CategoryTheory.Iso.{max (max u4 u1) u2, max (max (max u3 u4) u1) u2} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) F₁ F₂) -> (CategoryTheory.Iso.{max (max u4 u1) u2, max (max (max u4 u3) u2) u1} (CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X)) (CategoryTheory.Functor.category.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X)) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₁ h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F₂ h₂))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIsoₓ'. -/
/-- Isomorphic functors `over Y ⥤ over X` lift to isomorphic functors `mono_over Y ⥤ mono_over X`.
-/
def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F₂) : lift F₁ h₁ ≅ lift F₂ h₂ :=
fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
+/- warning: category_theory.mono_over.lift_comp -> CategoryTheory.MonoOver.liftComp is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : C} {Z : C} {Y : D} (F : CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y)) (G : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z)) (h₁ : forall (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X), CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Functor.obj.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) F (CategoryTheory.Functor.obj.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u3 u1, max u3 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) G (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))), CategoryTheory.Iso.{max u3 u1, max u3 u1} (CategoryTheory.Functor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z)) (CategoryTheory.Functor.category.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z)) (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 Z) (CategoryTheory.MonoOver.lift.{u2, u1, u4, u3} D _inst_2 Y C _inst_1 X F h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 Z D _inst_2 Y G h₂)) (CategoryTheory.MonoOver.lift.{u1, u1, u3, u3} C _inst_1 Z C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Over.category.{u3, u1} C _inst_1 Z) F G) (CategoryTheory.MonoOver.liftComp._proof_1.{u3, u4, u1, u2} C _inst_1 D _inst_2 X Z Y F G h₁ h₂))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {X : C} {Z : C} {Y : D} (F : CategoryTheory.Functor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y)) (G : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z)) (h₁ : forall (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X), CategoryTheory.Mono.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (Prefunctor.obj.{succ u2, succ u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y)) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)))) (h₂ : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 Z) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) G) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))), CategoryTheory.Iso.{max u3 u1, max u3 u1} (CategoryTheory.Functor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z)) (CategoryTheory.Functor.category.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z)) (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 Z) (CategoryTheory.MonoOver.lift.{u2, u1, u4, u3} D _inst_2 Y C _inst_1 X F h₁) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 Z D _inst_2 Y G h₂)) (CategoryTheory.MonoOver.lift.{u1, u1, u3, u3} C _inst_1 Z C _inst_1 X (CategoryTheory.Functor.comp.{u1, u2, u1, max u3 u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 Z) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 Z) F G) (fun (f : CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) => h₂ (CategoryTheory.FullSubcategory.mk.{max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u2, succ u2, u4, u4} D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2)) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (Prefunctor.obj.{succ u2, succ u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.CategoryStruct.toQuiver.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.Category.toCategoryStruct.{u2, u2} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}))) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y)) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (Prefunctor.obj.{succ u1, succ u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) F) (Prefunctor.obj.{succ u1, succ u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u3 u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u3} C _inst_1 X)) f)) (h₁ f))))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftCompₓ'. -/
/-- `mono_over.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
lift F h₁ ⋙ lift G h₂ ≅ lift (F ⋙ G) fun f => h₂ ⟨_, h₁ f⟩ :=
fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftComp
+#print CategoryTheory.MonoOver.liftId /-
/-- `mono_over.lift` preserves the identity functor. -/
def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_id CategoryTheory.MonoOver.liftId
+-/
+/- warning: category_theory.mono_over.lift_comm -> CategoryTheory.MonoOver.lift_comm is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) f)))), Eq.{succ (max u2 u1)} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u1, u2, u2} C _inst_1 X C _inst_1 Y F h) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) F)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (F : CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) F) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) f)))), Eq.{max (succ u2) (succ u1)} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u1, u2, u2} C _inst_1 X C _inst_1 Y F h) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) F)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_commₓ'. -/
@[simp]
theorem lift_comm (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) :
@@ -179,6 +265,12 @@ theorem lift_comm (F : Over Y ⥤ Over X)
rfl
#align category_theory.mono_over.lift_comm CategoryTheory.MonoOver.lift_comm
+/- warning: category_theory.mono_over.lift_obj_arrow -> CategoryTheory.MonoOver.lift_obj_arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))) (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) ((fun (a : Type.{max u3 u1}) (b : Type.{u3}) [self : HasLiftT.{succ (max u3 u1), succ u3} a b] => self.0) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (HasLiftT.mk.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (coeBase.{succ (max u3 u1), succ u3} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u3} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h) f)) X) (CategoryTheory.MonoOver.arrow.{u1, u3} C _inst_1 X (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.Functor.obj.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Over.category.{u3, u1} C _inst_1 X) F (CategoryTheory.Functor.obj.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.InducedCategory.category.{u2, max u4 u2, max u4 u2} (CategoryTheory.FullSubcategoryₓ.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (fun (f : CategoryTheory.Over.{u2, u4} D _inst_2 Y) => CategoryTheory.Mono.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u2, u2, u4, u4} D _inst_2 D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Comma.left.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Functor.obj.{u2, u2, u2, u4} (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) (CategoryTheory.Comma.right.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)) (CategoryTheory.Comma.hom.{u2, u2, u2, u4, u2, u4} D _inst_2 (CategoryTheory.Discrete.{u2} PUnit.{succ u2}) (CategoryTheory.discreteCategory.{u2} PUnit.{succ u2}) D _inst_2 (CategoryTheory.Functor.id.{u2, u4} D _inst_2) (CategoryTheory.Functor.fromPUnit.{u2, u4} D _inst_2 Y) f)))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.category.{u4, u2} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y) f)))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] {X : C} {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] {Y : D} (F : CategoryTheory.Functor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X)) (h : forall (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))) (f : CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u3} C _inst_1 X) => CategoryTheory.Mono.{u1, u3} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u3, u3} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u3, u3} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, u1, u3} (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u3} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) f)) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h)) f))) X) (CategoryTheory.MonoOver.arrow.{u1, u3} C _inst_1 X (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.lift.{u1, u2, u3, u4} C _inst_1 X D _inst_2 Y F h)) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u3, u1, u3} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u3} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u3} C _inst_1 X) (Prefunctor.obj.{succ u2, succ u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u3 u1} (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u2, u1, max u4 u2, max u3 u1} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u3} C _inst_1 X) F) (Prefunctor.obj.{succ u2, succ u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.Category.toCategoryStruct.{u2, max u4 u2} (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y))) (CategoryTheory.Functor.toPrefunctor.{u2, u2, max u4 u2, max u4 u2} (CategoryTheory.MonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 Y) (CategoryTheory.Over.{u2, u4} D _inst_2 Y) (CategoryTheory.instCategoryOver.{u2, u4} D _inst_2 Y) (CategoryTheory.MonoOver.forget.{u2, u4} D _inst_2 Y)) f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrowₓ'. -/
@[simp]
theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).Hom) (f : MonoOver Y) :
@@ -186,6 +278,12 @@ theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
rfl
#align category_theory.mono_over.lift_obj_arrow CategoryTheory.MonoOver.lift_obj_arrow
+/- warning: category_theory.mono_over.slice -> CategoryTheory.MonoOver.slice is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {f : CategoryTheory.Over.{u1, u2} C _inst_1 A}, (forall (f_1 : CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f), CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (fun (f_1 : CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) => CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) f_1)))) -> (forall (f_1 : CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)), CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Functor.obj.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f)) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (fun (f_1 : CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) f_1)))) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.category.{max u2 u1, u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Over.category.{u2, u1} C _inst_1 A) f) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {f : CategoryTheory.Over.{u1, u2} C _inst_1 A}, (forall (f_1 : CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f), CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Equivalence.functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.forget.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) f_1)))) -> (forall (f_1 : CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)), CategoryTheory.Mono.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Comma.left.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) (Prefunctor.obj.{succ u1, succ u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.CategoryStruct.toQuiver.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.Category.toCategoryStruct.{u1, u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}))) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, max u2 u1} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Comma.right.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) (CategoryTheory.Comma.hom.{u1, u1, u1, max u2 u1, u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A)) (CategoryTheory.Functor.fromPUnit.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Equivalence.inverse.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.iteratedSliceEquiv.{u1, u2} C _inst_1 A f))) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.Over.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f))) f_1)))) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)) (CategoryTheory.instCategoryMonoOver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 A) f) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 A) f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.slice CategoryTheory.MonoOver.sliceₓ'. -/
/-- Monomorphisms over an object `f : over A` in an over category
are equivalent to monomorphisms over the source of `f`.
-/
@@ -205,6 +303,7 @@ section Pullback
variable [HasPullbacks C]
+#print CategoryTheory.MonoOver.pullback /-
/-- When `C` has pullbacks, a morphism `f : X ⟶ Y` induces a functor `mono_over Y ⥤ mono_over X`,
by pulling back a monomorphism along `f`. -/
def pullback (f : X ⟶ Y) : MonoOver Y ⥤ MonoOver X :=
@@ -215,23 +314,40 @@ def pullback (f : X ⟶ Y) : MonoOver Y ⥤ MonoOver X :=
change mono g.arrow
infer_instance)
#align category_theory.mono_over.pullback CategoryTheory.MonoOver.pullback
+-/
+#print CategoryTheory.MonoOver.pullbackComp /-
/-- pullback commutes with composition (up to a natural isomorphism) -/
def pullbackComp (f : X ⟶ Y) (g : Y ⟶ Z) : pullback (f ≫ g) ≅ pullback g ⋙ pullback f :=
liftIso _ _ (Over.pullbackComp _ _) ≪≫ (liftComp _ _ _ _).symm
#align category_theory.mono_over.pullback_comp CategoryTheory.MonoOver.pullbackComp
+-/
+#print CategoryTheory.MonoOver.pullbackId /-
/-- pullback preserves the identity (up to a natural isomorphism) -/
def pullbackId : pullback (𝟙 X) ≅ 𝟭 _ :=
liftIso _ _ Over.pullbackId ≪≫ liftId
#align category_theory.mono_over.pullback_id CategoryTheory.MonoOver.pullbackId
+-/
+/- warning: category_theory.mono_over.pullback_obj_left -> CategoryTheory.MonoOver.pullback_obj_left is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) (CategoryTheory.Limits.pullback.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) g) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{0, 0, u1, u2} C _inst_1 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) _inst_3 (CategoryTheory.Limits.cospan.{u1, u2} C _inst_1 ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) g) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f)))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g))) (CategoryTheory.Limits.pullback.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f (CategoryTheory.Limits.hasLimitOfHasLimitsOfShape.{0, 0, u1, u2} C _inst_1 CategoryTheory.Limits.WalkingCospan (CategoryTheory.Limits.WidePullbackShape.category.{0} CategoryTheory.Limits.WalkingPair) _inst_3 (CategoryTheory.Limits.cospan.{u1, u2} C _inst_1 (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y g) f)))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_leftₓ'. -/
@[simp]
theorem pullback_obj_left (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g : C) = Limits.pullback g.arrow f :=
rfl
#align category_theory.mono_over.pullback_obj_left CategoryTheory.MonoOver.pullback_obj_left
+/- warning: category_theory.mono_over.pullback_obj_arrow -> CategoryTheory.MonoOver.pullback_obj_arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 X)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f) g)) (CategoryTheory.Limits.pullback.snd.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g))) X (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g)) f (CategoryTheory.Over.pullback._proof_1.{u2, u1} C _inst_1 _inst_3 X Y f (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y) g)))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g))) X) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_3 f)) g)) (CategoryTheory.Limits.pullback.snd.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g))) X (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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g))) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g)) f (CategoryTheory.Over.pullback.proof_1.{u1, u2} C _inst_1 _inst_3 X Y f (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 Y)) g)))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.pullback_obj_arrow CategoryTheory.MonoOver.pullback_obj_arrowₓ'. -/
@[simp]
theorem pullback_obj_arrow (f : X ⟶ Y) (g : MonoOver Y) :
((pullback f).obj g).arrow = pullback.snd :=
@@ -244,43 +360,71 @@ section Map
attribute [instance] mono_comp
+#print CategoryTheory.MonoOver.map /-
/-- We can map monomorphisms over `X` to monomorphisms over `Y`
by post-composition with a monomorphism `f : X ⟶ Y`.
-/
def map (f : X ⟶ Y) [Mono f] : MonoOver X ⥤ MonoOver Y :=
lift (Over.map f) fun g => by apply mono_comp g.arrow f
#align category_theory.mono_over.map CategoryTheory.MonoOver.map
+-/
+#print CategoryTheory.MonoOver.mapComp /-
/-- `mono_over.map` commutes with composition (up to a natural isomorphism). -/
def mapComp (f : X ⟶ Y) (g : Y ⟶ Z) [Mono f] [Mono g] : map (f ≫ g) ≅ map f ⋙ map g :=
liftIso _ _ (Over.mapComp _ _) ≪≫ (liftComp _ _ _ _).symm
#align category_theory.mono_over.map_comp CategoryTheory.MonoOver.mapComp
+-/
+#print CategoryTheory.MonoOver.mapId /-
/-- `mono_over.map` preserves the identity (up to a natural isomorphism). -/
def mapId : map (𝟙 X) ≅ 𝟭 _ :=
liftIso _ _ Over.mapId ≪≫ liftId
#align category_theory.mono_over.map_id CategoryTheory.MonoOver.mapId
+-/
+/- warning: category_theory.mono_over.map_obj_left -> CategoryTheory.MonoOver.map_obj_left is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u2} C ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u2} C (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g))) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_leftₓ'. -/
@[simp]
theorem map_obj_left (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g : C) = g.obj.left :=
rfl
#align category_theory.mono_over.map_obj_left CategoryTheory.MonoOver.map_obj_left
+/- warning: category_theory.mono_over.map_obj_arrow -> CategoryTheory.MonoOver.map_obj_arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.Functor.obj.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X g) f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_3 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f] (g : CategoryTheory.MonoOver.{u1, u2} C _inst_1 X), Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g))) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (Prefunctor.obj.{succ u1, succ u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.CategoryStruct.toQuiver.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.Category.toCategoryStruct.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))) (CategoryTheory.Functor.toPrefunctor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_3)) g)) (CategoryTheory.CategoryStruct.comp.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) g)) X Y (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 X g) f)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrowₓ'. -/
@[simp]
theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).arrow = g.arrow ≫ f :=
rfl
#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrow
+#print CategoryTheory.MonoOver.fullMap /-
instance fullMap (f : X ⟶ Y) [Mono f] : Full (map f)
where preimage g h e := by
refine' hom_mk e.left _
rw [← cancel_mono f, assoc]
apply w e
#align category_theory.mono_over.full_map CategoryTheory.MonoOver.fullMap
+-/
+#print CategoryTheory.MonoOver.faithful_map /-
instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
+-/
+/- warning: category_theory.mono_over.map_iso -> CategoryTheory.MonoOver.mapIso is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {B : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 A B) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 A) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 B) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 B))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {A : C} {B : C}, (CategoryTheory.Iso.{u1, u2} C _inst_1 A B) -> (CategoryTheory.Equivalence.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 B) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 A) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 B))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.map_iso CategoryTheory.MonoOver.mapIsoₓ'. -/
/-- Isomorphic objects have equivalent `mono_over` categories.
-/
@[simps]
@@ -296,6 +440,12 @@ section
variable (X)
+/- warning: category_theory.mono_over.congr -> CategoryTheory.MonoOver.congr is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (e : CategoryTheory.Equivalence.{u1, u2, u3, u4} C _inst_1 D _inst_2), CategoryTheory.Equivalence.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.category.{u3, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C _inst_1 D _inst_2 e) X)) (CategoryTheory.MonoOver.category.{u4, u2} D _inst_2 (CategoryTheory.Functor.obj.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C _inst_1 D _inst_2 e) X))
+but is expected to have type
+ forall {C : Type.{u3}} [_inst_1 : CategoryTheory.Category.{u1, u3} C] (X : C) {D : Type.{u4}} [_inst_2 : CategoryTheory.Category.{u2, u4} D] (e : CategoryTheory.Equivalence.{u1, u2, u3, u4} C D _inst_1 _inst_2), CategoryTheory.Equivalence.{u1, u2, max u3 u1, max u4 u2} (CategoryTheory.MonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.MonoOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C D _inst_1 _inst_2 e)) X)) (CategoryTheory.instCategoryMonoOver.{u1, u3} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u2, u4} D _inst_2 (Prefunctor.obj.{succ u1, succ u2, u3, u4} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u3} C (CategoryTheory.Category.toCategoryStruct.{u1, u3} C _inst_1)) D (CategoryTheory.CategoryStruct.toQuiver.{u2, u4} D (CategoryTheory.Category.toCategoryStruct.{u2, u4} D _inst_2)) (CategoryTheory.Functor.toPrefunctor.{u1, u2, u3, u4} C _inst_1 D _inst_2 (CategoryTheory.Equivalence.functor.{u1, u2, u3, u4} C D _inst_1 _inst_2 e)) X))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.congr CategoryTheory.MonoOver.congrₓ'. -/
/-- An equivalence of categories `e` between `C` and `D` induces an equivalence between
`mono_over X` and `mono_over (e.functor.obj X)` whenever `X` is an object of `C`. -/
@[simps]
@@ -320,16 +470,20 @@ section
variable [HasPullbacks C]
+#print CategoryTheory.MonoOver.mapPullbackAdj /-
/-- `map f` is left adjoint to `pullback f` when `f` is a monomorphism -/
def mapPullbackAdj (f : X ⟶ Y) [Mono f] : map f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (forget Y) (Over.mapPullbackAdj f) (Iso.refl _)
(Iso.refl _)
#align category_theory.mono_over.map_pullback_adj CategoryTheory.MonoOver.mapPullbackAdj
+-/
+#print CategoryTheory.MonoOver.pullbackMapSelf /-
/-- `mono_over.map f` followed by `mono_over.pullback f` is the identity. -/
def pullbackMapSelf (f : X ⟶ Y) [Mono f] : map f ⋙ pullback f ≅ 𝟭 _ :=
(asIso (MonoOver.mapPullbackAdj f).Unit).symm
#align category_theory.mono_over.pullback_map_self CategoryTheory.MonoOver.pullbackMapSelf
+-/
end
@@ -339,12 +493,20 @@ section Image
variable (f : X ⟶ Y) [HasImage f]
+#print CategoryTheory.MonoOver.imageMonoOver /-
/-- The `mono_over Y` for the image inclusion for a morphism `f : X ⟶ Y`.
-/
def imageMonoOver (f : X ⟶ Y) [HasImage f] : MonoOver Y :=
MonoOver.mk' (image.ι f)
#align category_theory.mono_over.image_mono_over CategoryTheory.MonoOver.imageMonoOver
+-/
+/- warning: category_theory.mono_over.image_mono_over_arrow -> CategoryTheory.MonoOver.imageMonoOver_arrow is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasImage.{u1, u2} C _inst_1 X Y f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) ((fun (a : Type.{max u2 u1}) (b : Type.{u2}) [self : HasLiftT.{succ (max u2 u1), succ u2} a b] => self.0) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (HasLiftT.mk.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CoeTCₓ.coe.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (coeBase.{succ (max u2 u1), succ u2} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) C (CategoryTheory.MonoOver.hasCoe.{u1, u2} C _inst_1 Y)))) (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) (CategoryTheory.Limits.image.ι.{u1, u2} C _inst_1 X Y f _inst_4)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasImage.{u1, u2} C _inst_1 X Y f], Eq.{succ u1} (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) (CategoryTheory.FullSubcategory.obj.{max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 Y) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 Y) => CategoryTheory.Mono.{u1, u2} C _inst_1 (Prefunctor.obj.{succ u1, succ u1, u2, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1)) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 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}))) C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) (CategoryTheory.Functor.toPrefunctor.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y)) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 Y) f)) (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4))) Y) (CategoryTheory.MonoOver.arrow.{u1, u2} C _inst_1 Y (CategoryTheory.MonoOver.imageMonoOver.{u1, u2} C _inst_1 X Y f _inst_4)) (CategoryTheory.Limits.image.ι.{u1, u2} C _inst_1 X Y f _inst_4)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.image_mono_over_arrow CategoryTheory.MonoOver.imageMonoOver_arrowₓ'. -/
@[simp]
theorem imageMonoOver_arrow (f : X ⟶ Y) [HasImage f] : (imageMonoOver f).arrow = image.ι f :=
rfl
@@ -356,6 +518,7 @@ section Image
variable [HasImages C]
+#print CategoryTheory.MonoOver.image /-
/-- Taking the image of a morphism gives a functor `over X ⥤ mono_over X`.
-/
@[simps]
@@ -371,7 +534,9 @@ def image : Over X ⥤ MonoOver X where
e := k.left ≫ factor_thru_image g.hom }
apply image.lift_fac
#align category_theory.mono_over.image CategoryTheory.MonoOver.image
+-/
+#print CategoryTheory.MonoOver.imageForgetAdj /-
/-- `mono_over.image : over X ⥤ mono_over X` is left adjoint to
`mono_over.forget : mono_over X ⥤ over X`
-/
@@ -401,14 +566,27 @@ def imageForgetAdj : image ⊣ forget X :=
rw [← cancel_mono g.arrow, assoc, image.lift_fac, image.fac f.hom]
exact (over.w k).symm } }
#align category_theory.mono_over.image_forget_adj CategoryTheory.MonoOver.imageForgetAdj
+-/
instance : IsRightAdjoint (forget X) where
left := image
adj := imageForgetAdj
+/- warning: category_theory.mono_over.reflective -> CategoryTheory.MonoOver.reflective is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Reflective.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Reflective.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflectiveₓ'. -/
instance reflective : Reflective (forget X) where
#align category_theory.mono_over.reflective CategoryTheory.MonoOver.reflective
+/- warning: category_theory.mono_over.forget_image -> CategoryTheory.MonoOver.forgetImage is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.image.{u1, u2} C _inst_1 X _inst_3)) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X)) (CategoryTheory.Functor.comp.{u1, u1, u1, max u2 u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.forget.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.image.{u1, u2} C _inst_1 X _inst_3)) (CategoryTheory.Functor.id.{u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.forget_image CategoryTheory.MonoOver.forgetImageₓ'. -/
/-- Forgetting that a monomorphism over `X` is a monomorphism, then taking its image,
is the identity functor.
-/
@@ -422,19 +600,37 @@ section Exists
variable [HasImages C]
+/- warning: category_theory.mono_over.exists -> CategoryTheory.MonoOver.exists_ is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y))
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1], (Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) -> (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y))
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists_ₓ'. -/
/-- In the case where `f` is not a monomorphism but `C` has images,
we can still take the "forward map" under it, which agrees with `mono_over.map f`.
-/
-def exists (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
+def exists_ (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
-#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
-
-instance faithful_exists (f : X ⟶ Y) : Faithful (exists f) where
+#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists_
+
+/- warning: category_theory.mono_over.faithful_exists -> CategoryTheory.MonoOver.faithful_exists is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y), CategoryTheory.Faithful.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_existsₓ'. -/
+instance faithful_exists (f : X ⟶ Y) : Faithful (exists_ f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
+/- warning: category_theory.mono_over.exists_iso_map -> CategoryTheory.MonoOver.existsIsoMap is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y)) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Mono.{u1, u2} C _inst_1 X Y f], CategoryTheory.Iso.{max u2 u1, max u2 u1} (CategoryTheory.Functor.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.Functor.category.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y)) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.map.{u1, u2} C _inst_1 X Y f _inst_4)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMapₓ'. -/
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
-def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
+def existsIsoMap (f : X ⟶ Y) [Mono f] : exists_ f ≅ map f :=
NatIso.ofComponents
(by
intro Z
@@ -454,8 +650,14 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists f ≅ map f :=
apply image.lift_fac)
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
+/- warning: category_theory.mono_over.exists_pullback_adj -> CategoryTheory.MonoOver.existsPullbackAdj is a dubious translation:
+lean 3 declaration is
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.InducedCategory.category.{u1, max u2 u1, max u2 u1} (CategoryTheory.FullSubcategoryₓ.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f))) (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (CategoryTheory.FullSubcategoryₓ.obj.{u1, max u2 u1} (CategoryTheory.Over.{u1, u2} C _inst_1 X) (CategoryTheory.Over.category.{u2, u1} C _inst_1 X) (fun (f : CategoryTheory.Over.{u1, u2} C _inst_1 X) => CategoryTheory.Mono.{u1, u2} C _inst_1 (CategoryTheory.Functor.obj.{u1, u1, u2, u2} C _inst_1 C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Comma.left.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Functor.obj.{u1, u1, u1, u2} (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) (CategoryTheory.Comma.right.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)) (CategoryTheory.Comma.hom.{u1, u1, u1, u2, u1, u2} C _inst_1 (CategoryTheory.Discrete.{u1} PUnit.{succ u1}) (CategoryTheory.discreteCategory.{u1} PUnit.{succ u1}) C _inst_1 (CategoryTheory.Functor.id.{u1, u2} C _inst_1) (CategoryTheory.Functor.fromPUnit.{u1, u2} C _inst_1 X) f)))) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.category.{u2, u1} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
+but is expected to have type
+ forall {C : Type.{u2}} [_inst_1 : CategoryTheory.Category.{u1, u2} C] {X : C} {Y : C} [_inst_3 : CategoryTheory.Limits.HasImages.{u1, u2} C _inst_1] (f : Quiver.Hom.{succ u1, u2} C (CategoryTheory.CategoryStruct.toQuiver.{u1, u2} C (CategoryTheory.Category.toCategoryStruct.{u1, u2} C _inst_1)) X Y) [_inst_4 : CategoryTheory.Limits.HasPullbacks.{u1, u2} C _inst_1], CategoryTheory.Adjunction.{u1, u1, max u2 u1, max u2 u1} (CategoryTheory.MonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 X) (CategoryTheory.MonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.instCategoryMonoOver.{u1, u2} C _inst_1 Y) (CategoryTheory.MonoOver.exists_.{u1, u2} C _inst_1 X Y _inst_3 f) (CategoryTheory.MonoOver.pullback.{u1, u2} C _inst_1 X Y _inst_4 f)
+Case conversion may be inaccurate. Consider using '#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdjₓ'. -/
/-- `exists` is adjoint to `pullback` when images exist -/
-def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists f ⊣ pullback f :=
+def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists_ f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (𝟭 _) ((Over.mapPullbackAdj f).comp imageForgetAdj)
(Iso.refl _) (Iso.refl _)
#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdj
mathlib commit https://github.com/leanprover-community/mathlib/commit/eb0cb4511aaef0da2462207b67358a0e1fe1e2ee
@@ -392,7 +392,7 @@ def imageForgetAdj : image ⊣ forget X :=
{ i := g.obj.left
m := g.arrow
e := k.left
- fac' := over.w k }
+ fac := over.w k }
apply image.lift_fac
left_inv := fun k => Subsingleton.elim _ _
right_inv := fun k => by
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -367,12 +367,12 @@ def image : Over X ⥤ MonoOver X where
map {f g} k := by
apply (forget X).preimage _
apply Over.homMk _ _
- exact
- image.lift
- { I := Limits.image _
- m := image.ι g.hom
- e := k.left ≫ factorThruImage g.hom }
- apply image.lift_fac
+ · exact
+ image.lift
+ { I := Limits.image _
+ m := image.ι g.hom
+ e := k.left ≫ factorThruImage g.hom }
+ · apply image.lift_fac
#align category_theory.mono_over.image CategoryTheory.MonoOver.image
/-- `MonoOver.image : Over X ⥤ MonoOver X` is left adjoint to
@@ -388,13 +388,13 @@ def imageForgetAdj : image ⊣ forget X :=
apply image.fac
invFun := fun k => by
refine' Over.homMk _ _
- exact
- image.lift
- { I := g.obj.left
- m := g.arrow
- e := k.left
- fac := Over.w k }
- apply image.lift_fac
+ · exact
+ image.lift
+ { I := g.obj.left
+ m := g.arrow
+ e := k.left
+ fac := Over.w k }
+ · apply image.lift_fac
left_inv := fun k => Subsingleton.elim _ _
right_inv := fun k => by
ext1
@@ -441,8 +441,8 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : «exists» f ≅ map f :=
suffices (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z) by
apply (forget _).preimageIso this
apply Over.isoMk _ _
- apply imageMonoIsoSource (Z.arrow ≫ f)
- apply imageMonoIsoSource_hom_self)
+ · apply imageMonoIsoSource (Z.arrow ≫ f)
+ · apply imageMonoIsoSource_hom_self)
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
/-- `exists` is adjoint to `pullback` when images exist -/
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>
@@ -152,7 +152,7 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
(h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).hom) :
MonoOver Y ⥤ MonoOver X where
obj f := ⟨_, h f⟩
- map k := (MonoOver.forget X).preimage ((MonoOver.forget Y ⋙ F).map k)
+ map k := (MonoOver.forget Y ⋙ F).map k
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
/-- Isomorphic functors `Over Y ⥤ Over X` lift to isomorphic functors `MonoOver Y ⥤ MonoOver X`.
@@ -276,12 +276,12 @@ theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).
rfl
#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrow
-instance fullMap (f : X ⟶ Y) [Mono f] : Functor.Full (map f) where
- preimage {g h} e := by
- refine' homMk e.left _
- rw [← cancel_mono f, assoc]
- apply w e
-#align category_theory.mono_over.full_map CategoryTheory.MonoOver.fullMap
+instance full_map (f : X ⟶ Y) [Mono f] : Functor.Full (map f) where
+ map_surjective {g h} e := by
+ refine' ⟨homMk e.left _, rfl⟩
+ · rw [← cancel_mono f, assoc]
+ apply w e
+#align category_theory.mono_over.full_map CategoryTheory.MonoOver.full_map
instance faithful_map (f : X ⟶ Y) [Mono f] : Functor.Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
The file CategoryTheory.MorphismProperty
is split into five files Basic
, Composition
, Limits
, Concrete
, IsInvertedBy
.
@@ -4,6 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-/
import Mathlib.CategoryTheory.Limits.Over
+import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Adjunction.Reflective
import Mathlib.CategoryTheory.Adjunction.Restrict
Adjunction.restrictFullyFaithful
to separate file (#12363)
Also resolves a TODO to add lemmas about Adjunction.restrictFullyFaithful
@@ -4,8 +4,8 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-/
import Mathlib.CategoryTheory.Limits.Over
-import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Adjunction.Reflective
+import Mathlib.CategoryTheory.Adjunction.Restrict
#align_import category_theory.subobject.mono_over from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
These notions on functors are now Functor.Full
, Functor.Faithful
, Functor.EssSurj
, Functor.IsEquivalence
, Functor.ReflectsIsomorphisms
. Deprecated aliases are introduced for the previous names.
@@ -98,10 +98,10 @@ theorem forget_obj_hom {f} : ((forget X).obj f).hom = f.arrow :=
rfl
#align category_theory.mono_over.forget_obj_hom CategoryTheory.MonoOver.forget_obj_hom
-instance : Full (forget X) :=
+instance : (forget X).Full :=
FullSubcategory.full _
-instance : Faithful (forget X) :=
+instance : (forget X).Faithful :=
FullSubcategory.faithful _
instance mono (f : MonoOver X) : Mono f.arrow :=
@@ -157,18 +157,18 @@ def lift {Y : D} (F : Over Y ⥤ Over X)
/-- Isomorphic functors `Over Y ⥤ Over X` lift to isomorphic functors `MonoOver Y ⥤ MonoOver X`.
-/
def liftIso {Y : D} {F₁ F₂ : Over Y ⥤ Over X} (h₁ h₂) (i : F₁ ≅ F₂) : lift F₁ h₁ ≅ lift F₂ h₂ :=
- fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
+ Functor.fullyFaithfulCancelRight (MonoOver.forget X) (isoWhiskerLeft (MonoOver.forget Y) i)
#align category_theory.mono_over.lift_iso CategoryTheory.MonoOver.liftIso
/-- `MonoOver.lift` commutes with composition of functors. -/
def liftComp {X Z : C} {Y : D} (F : Over X ⥤ Over Y) (G : Over Y ⥤ Over Z) (h₁ h₂) :
lift F h₁ ⋙ lift G h₂ ≅ lift (F ⋙ G) fun f => h₂ ⟨_, h₁ f⟩ :=
- fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
+ Functor.fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_comp CategoryTheory.MonoOver.liftComp
/-- `MonoOver.lift` preserves the identity functor. -/
def liftId : (lift (𝟭 (Over X)) fun f => f.2) ≅ 𝟭 _ :=
- fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
+ Functor.fullyFaithfulCancelRight (MonoOver.forget _) (Iso.refl _)
#align category_theory.mono_over.lift_id CategoryTheory.MonoOver.liftId
@[simp]
@@ -275,14 +275,14 @@ theorem map_obj_arrow (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g).
rfl
#align category_theory.mono_over.map_obj_arrow CategoryTheory.MonoOver.map_obj_arrow
-instance fullMap (f : X ⟶ Y) [Mono f] : Full (map f) where
+instance fullMap (f : X ⟶ Y) [Mono f] : Functor.Full (map f) where
preimage {g h} e := by
refine' homMk e.left _
rw [← cancel_mono f, assoc]
apply w e
#align category_theory.mono_over.full_map CategoryTheory.MonoOver.fullMap
-instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
+instance faithful_map (f : X ⟶ Y) [Mono f] : Functor.Faithful (map f) where
#align category_theory.mono_over.faithful_map CategoryTheory.MonoOver.faithful_map
/-- Isomorphic objects have equivalent `MonoOver` categories.
@@ -429,7 +429,7 @@ def «exists» (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
-instance faithful_exists (f : X ⟶ Y) : Faithful («exists» f) where
+instance faithful_exists (f : X ⟶ Y) : Functor.Faithful («exists» f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
refine
to exact
in files where it speeds up (#11896)
See #11890 and this Zulip discussion for an in-depth explanation of why these refine
s and not others.
The short answer is that the files in which these replacements took place were more performant after the change than before.
@@ -366,7 +366,7 @@ def image : Over X ⥤ MonoOver X where
map {f g} k := by
apply (forget X).preimage _
apply Over.homMk _ _
- refine'
+ exact
image.lift
{ I := Limits.image _
m := image.ι g.hom
@@ -387,7 +387,7 @@ def imageForgetAdj : image ⊣ forget X :=
apply image.fac
invFun := fun k => by
refine' Over.homMk _ _
- refine'
+ exact
image.lift
{ I := g.obj.left
m := g.arrow
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -43,7 +43,6 @@ namespace CategoryTheory
open CategoryTheory CategoryTheory.Category CategoryTheory.Limits
variable {C : Type u₁} [Category.{v₁} C] {X Y Z : C}
-
variable {D : Type u₂} [Category.{v₂} D]
/-- The category of monomorphisms into `X` as a full subcategory of the over category.
@@ -191,10 +191,10 @@ are equivalent to monomorphisms over the source of `f`.
-/
def slice {A : C} {f : Over A}
(h₁ : ∀ (g : MonoOver f),
- Mono ((Over.iteratedSliceEquiv f).functor.obj ((forget f).obj g)).hom)
+ Mono ((Over.iteratedSliceEquiv f).functor.obj ((forget f).obj g)).hom)
(h₂ : ∀ (g : MonoOver f.left),
- Mono ((Over.iteratedSliceEquiv f).inverse.obj ((forget f.left).obj g)).hom) :
- MonoOver f ≌ MonoOver f.left where
+ Mono ((Over.iteratedSliceEquiv f).inverse.obj ((forget f.left).obj g)).hom) :
+ MonoOver f ≌ MonoOver f.left where
functor := MonoOver.lift f.iteratedSliceEquiv.functor h₁
inverse := MonoOver.lift f.iteratedSliceEquiv.inverse h₂
unitIso :=
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>
@@ -257,11 +257,15 @@ def mapComp (f : X ⟶ Y) (g : Y ⟶ Z) [Mono f] [Mono g] : map (f ≫ g) ≅ ma
liftIso _ _ (Over.mapComp _ _) ≪≫ (liftComp _ _ _ _).symm
#align category_theory.mono_over.map_comp CategoryTheory.MonoOver.mapComp
+variable (X)
+
/-- `MonoOver.map` preserves the identity (up to a natural isomorphism). -/
def mapId : map (𝟙 X) ≅ 𝟭 _ :=
- liftIso _ _ Over.mapId ≪≫ liftId
+ liftIso _ _ (Over.mapId X) ≪≫ liftId
#align category_theory.mono_over.map_id CategoryTheory.MonoOver.mapId
+variable {X}
+
@[simp]
theorem map_obj_left (f : X ⟶ Y) [Mono f] (g : MonoOver X) : ((map f).obj g : C) = g.obj.left :=
rfl
@@ -288,8 +292,8 @@ instance faithful_map (f : X ⟶ Y) [Mono f] : Faithful (map f) where
def mapIso {A B : C} (e : A ≅ B) : MonoOver A ≌ MonoOver B where
functor := map e.hom
inverse := map e.inv
- unitIso := ((mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ mapId).symm
- counitIso := (mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ mapId
+ unitIso := ((mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ (mapId _)).symm
+ counitIso := (mapComp _ _).symm ≪≫ eqToIso (by simp) ≪≫ (mapId _)
#align category_theory.mono_over.map_iso CategoryTheory.MonoOver.mapIso
section
And fix some names in comments where this revealed issues
@@ -420,7 +420,7 @@ section Exists
variable [HasImages C]
/-- In the case where `f` is not a monomorphism but `C` has images,
-we can still take the "forward map" under it, which agrees with `mono_over.map f`.
+we can still take the "forward map" under it, which agrees with `MonoOver.map f`.
-/
def «exists» (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
@@ -190,9 +190,9 @@ theorem lift_obj_arrow {Y : D} (F : Over Y ⥤ Over X)
are equivalent to monomorphisms over the source of `f`.
-/
def slice {A : C} {f : Over A}
- (h₁ : ∀ (g : MonoOver f),
+ (h₁ : ∀ (g : MonoOver f),
Mono ((Over.iteratedSliceEquiv f).functor.obj ((forget f).obj g)).hom)
- (h₂ : ∀ (g : MonoOver f.left),
+ (h₂ : ∀ (g : MonoOver f.left),
Mono ((Over.iteratedSliceEquiv f).inverse.obj ((forget f.left).obj g)).hom) :
MonoOver f ≌ MonoOver f.left where
functor := MonoOver.lift f.iteratedSliceEquiv.functor h₁
Many proofs use the "stream of consciousness" style from Lean 3, rather than have ... :=
or suffices ... from/by
.
This PR updates a fraction of these to the preferred Lean 4 style.
I think a good goal would be to delete the "deferred" versions of have
, suffices
, and let
at the bottom of Mathlib.Tactic.Have
(Anyone who would like to contribute more cleanup is welcome to push directly to this branch.)
Co-authored-by: Scott Morrison <scott.morrison@gmail.com>
@@ -434,8 +434,8 @@ instance faithful_exists (f : X ⟶ Y) : Faithful («exists» f) where
def existsIsoMap (f : X ⟶ Y) [Mono f] : «exists» f ≅ map f :=
NatIso.ofComponents (by
intro Z
- suffices : (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z)
- apply (forget _).preimageIso this
+ suffices (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z) by
+ apply (forget _).preimageIso this
apply Over.isoMk _ _
apply imageMonoIsoSource (Z.arrow ≫ f)
apply imageMonoIsoSource_hom_self)
@@ -2,16 +2,13 @@
Copyright (c) 2020 Bhavik Mehta. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Bhavik Mehta, Scott Morrison
-
-! This file was ported from Lean 3 source module category_theory.subobject.mono_over
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathlib.CategoryTheory.Limits.Over
import Mathlib.CategoryTheory.Limits.Shapes.Images
import Mathlib.CategoryTheory.Adjunction.Reflective
+#align_import category_theory.subobject.mono_over from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# Monomorphisms over a fixed object
@@ -127,14 +127,15 @@ theorem w {f g : MonoOver X} (k : f ⟶ g) : k.left ≫ g.arrow = f.arrow :=
#align category_theory.mono_over.w CategoryTheory.MonoOver.w
/-- Convenience constructor for a morphism in monomorphisms over `X`. -/
-abbrev homMk {f g : MonoOver X} (h : f.obj.left ⟶ g.obj.left) (w : h ≫ g.arrow = f.arrow) : f ⟶ g :=
+abbrev homMk {f g : MonoOver X} (h : f.obj.left ⟶ g.obj.left)
+ (w : h ≫ g.arrow = f.arrow := by aesop_cat) : f ⟶ g :=
Over.homMk h w
#align category_theory.mono_over.hom_mk CategoryTheory.MonoOver.homMk
/-- Convenience constructor for an isomorphism in monomorphisms over `X`. -/
@[simps]
-def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.hom ≫ g.arrow = f.arrow) : f ≅ g
- where
+def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left)
+ (w : h.hom ≫ g.arrow = f.arrow := by aesop_cat) : f ≅ g where
hom := homMk h.hom w
inv := homMk h.inv (by rw [h.inv_comp_eq, w])
#align category_theory.mono_over.iso_mk CategoryTheory.MonoOver.isoMk
@@ -143,7 +144,7 @@ def isoMk {f g : MonoOver X} (h : f.obj.left ≅ g.obj.left) (w : h.hom ≫ g.ar
package it as an isomorphism. -/
@[simp]
def mk'ArrowIso {X : C} (f : MonoOver X) : mk' f.arrow ≅ f :=
- isoMk (Iso.refl _) (by simp)
+ isoMk (Iso.refl _)
#align category_theory.mono_over.mk'_arrow_iso CategoryTheory.MonoOver.mk'ArrowIso
/-- Lift a functor between over categories to a functor between `MonoOver` categories,
@@ -151,8 +152,8 @@ given suitable evidence that morphisms are taken to monomorphisms.
-/
@[simps]
def lift {Y : D} (F : Over Y ⥤ Over X)
- (h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).hom) : MonoOver Y ⥤ MonoOver X
- where
+ (h : ∀ f : MonoOver Y, Mono (F.obj ((MonoOver.forget Y).obj f)).hom) :
+ MonoOver Y ⥤ MonoOver X where
obj f := ⟨_, h f⟩
map k := (MonoOver.forget X).preimage ((MonoOver.forget Y ⋙ F).map k)
#align category_theory.mono_over.lift CategoryTheory.MonoOver.lift
@@ -311,10 +312,8 @@ def congr (e : C ≌ D) : MonoOver X ≌ MonoOver (e.functor.obj X) where
dsimp
infer_instance) ⋙
(mapIso (e.unitIso.symm.app X)).functor
- unitIso := NatIso.ofComponents (fun Y => isoMk (e.unitIso.app Y)
- (by aesop_cat)) (by aesop_cat)
- counitIso := NatIso.ofComponents (fun Y => isoMk (e.counitIso.app Y)
- (by aesop_cat)) (by aesop_cat)
+ unitIso := NatIso.ofComponents fun Y => isoMk (e.unitIso.app Y)
+ counitIso := NatIso.ofComponents fun Y => isoMk (e.counitIso.app Y)
#align category_theory.mono_over.congr CategoryTheory.MonoOver.congr
end
@@ -436,15 +435,13 @@ instance faithful_exists (f : X ⟶ Y) : Faithful («exists» f) where
/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
def existsIsoMap (f : X ⟶ Y) [Mono f] : «exists» f ≅ map f :=
- NatIso.ofComponents
- (by
- intro Z
- suffices : (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z)
- apply (forget _).preimageIso this
- apply Over.isoMk _ _
- apply imageMonoIsoSource (Z.arrow ≫ f)
- apply imageMonoIsoSource_hom_self)
- (fun _ => Subsingleton.elim _ _)
+ NatIso.ofComponents (by
+ intro Z
+ suffices : (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z)
+ apply (forget _).preimageIso this
+ apply Over.isoMk _ _
+ apply imageMonoIsoSource (Z.arrow ≫ f)
+ apply imageMonoIsoSource_hom_self)
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
/-- `exists` is adjoint to `pullback` when images exist -/
@@ -423,24 +423,23 @@ section Exists
variable [HasImages C]
--- porting note: renamed `exists` as `exists_` because it is a reserved word
/-- In the case where `f` is not a monomorphism but `C` has images,
we can still take the "forward map" under it, which agrees with `mono_over.map f`.
-/
-def exists_ (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
+def «exists» (f : X ⟶ Y) : MonoOver X ⥤ MonoOver Y :=
forget _ ⋙ Over.map f ⋙ image
-#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists_
+#align category_theory.mono_over.exists CategoryTheory.MonoOver.exists
-instance faithful_exists (f : X ⟶ Y) : Faithful (exists_ f) where
+instance faithful_exists (f : X ⟶ Y) : Faithful («exists» f) where
#align category_theory.mono_over.faithful_exists CategoryTheory.MonoOver.faithful_exists
-/-- When `f : X ⟶ Y` is a monomorphism, `exists_ f` agrees with `map f`.
+/-- When `f : X ⟶ Y` is a monomorphism, `exists f` agrees with `map f`.
-/
-def existsIsoMap (f : X ⟶ Y) [Mono f] : exists_ f ≅ map f :=
+def existsIsoMap (f : X ⟶ Y) [Mono f] : «exists» f ≅ map f :=
NatIso.ofComponents
(by
intro Z
- suffices : (forget _).obj ((exists_ f).obj Z) ≅ (forget _).obj ((map f).obj Z)
+ suffices : (forget _).obj ((«exists» f).obj Z) ≅ (forget _).obj ((map f).obj Z)
apply (forget _).preimageIso this
apply Over.isoMk _ _
apply imageMonoIsoSource (Z.arrow ≫ f)
@@ -449,7 +448,7 @@ def existsIsoMap (f : X ⟶ Y) [Mono f] : exists_ f ≅ map f :=
#align category_theory.mono_over.exists_iso_map CategoryTheory.MonoOver.existsIsoMap
/-- `exists` is adjoint to `pullback` when images exist -/
-def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : exists_ f ⊣ pullback f :=
+def existsPullbackAdj (f : X ⟶ Y) [HasPullbacks C] : «exists» f ⊣ pullback f :=
Adjunction.restrictFullyFaithful (forget X) (𝟭 _) ((Over.mapPullbackAdj f).comp imageForgetAdj)
(Iso.refl _) (Iso.refl _)
#align category_theory.mono_over.exists_pullback_adj CategoryTheory.MonoOver.existsPullbackAdj
Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
All dependencies are ported!