algebra.category.Module.kernels
⟷
Mathlib.Algebra.Category.ModuleCat.Kernels
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
@@ -3,7 +3,7 @@ Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-/
-import Algebra.Category.Module.EpiMono
+import Algebra.Category.ModuleCat.EpiMono
import CategoryTheory.ConcreteCategory.Elementwise
#align_import algebra.category.Module.kernels from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-/
-import Mathbin.Algebra.Category.Module.EpiMono
-import Mathbin.CategoryTheory.ConcreteCategory.Elementwise
+import Algebra.Category.Module.EpiMono
+import CategoryTheory.ConcreteCategory.Elementwise
#align_import algebra.category.Module.kernels from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module algebra.category.Module.kernels
-! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Category.Module.EpiMono
import Mathbin.CategoryTheory.ConcreteCategory.Elementwise
+#align_import algebra.category.Module.kernels from "leanprover-community/mathlib"@"4280f5f32e16755ec7985ce11e189b6cd6ff6735"
+
/-!
# The concrete (co)kernels in the category of modules are (co)kernels in the categorical sense.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -33,11 +33,14 @@ section
variable {M N : ModuleCat.{v} R} (f : M ⟶ N)
+#print ModuleCat.kernelCone /-
/-- The kernel cone induced by the concrete kernel. -/
def kernelCone : KernelFork f :=
KernelFork.ofι (asHom f.ker.Subtype) <| by tidy
#align Module.kernel_cone ModuleCat.kernelCone
+-/
+#print ModuleCat.kernelIsLimit /-
/-- The kernel of a linear map is a kernel in the categorical sense. -/
def kernelIsLimit : IsLimit (kernelCone f) :=
Fork.IsLimit.mk _
@@ -51,12 +54,16 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simpa [← h])
#align Module.kernel_is_limit ModuleCat.kernelIsLimit
+-/
+#print ModuleCat.cokernelCocone /-
/-- The cokernel cocone induced by the projection onto the quotient. -/
def cokernelCocone : CokernelCofork f :=
CokernelCofork.ofπ (asHom f.range.mkQ) <| LinearMap.range_mkQ_comp _
#align Module.cokernel_cocone ModuleCat.cokernelCocone
+-/
+#print ModuleCat.cokernelIsColimit /-
/-- The projection onto the quotient is a cokernel in the categorical sense. -/
def cokernelIsColimit : IsColimit (cokernelCocone f) :=
Cofork.IsColimit.mk _
@@ -69,18 +76,23 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
convert h
exact Submodule.liftQ_mkQ _ _ _
#align Module.cokernel_is_colimit ModuleCat.cokernelIsColimit
+-/
end
+#print ModuleCat.hasKernels_moduleCat /-
/-- The category of R-modules has kernels, given by the inclusion of the kernel submodule. -/
theorem hasKernels_moduleCat : HasKernels (ModuleCat R) :=
⟨fun X Y f => HasLimit.mk ⟨_, kernelIsLimit f⟩⟩
#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCat
+-/
+#print ModuleCat.hasCokernels_moduleCat /-
/-- The category or R-modules has cokernels, given by the projection onto the quotient. -/
theorem hasCokernels_moduleCat : HasCokernels (ModuleCat R) :=
⟨fun X Y f => HasColimit.mk ⟨_, cokernelIsColimit f⟩⟩
#align Module.has_cokernels_Module ModuleCat.hasCokernels_moduleCat
+-/
open scoped ModuleCat
@@ -90,6 +102,7 @@ attribute [local instance] has_cokernels_Module
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
+#print ModuleCat.kernelIsoKer /-
/-- The categorical kernel of a morphism in `Module`
agrees with the usual module-theoretical kernel.
-/
@@ -97,18 +110,24 @@ noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
kernel f ≅ ModuleCat.of R f.ker :=
limit.isoLimitCone ⟨_, kernelIsLimit f⟩
#align Module.kernel_iso_ker ModuleCat.kernelIsoKer
+-/
+#print ModuleCat.kernelIsoKer_inv_kernel_ι /-
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
@[simp, elementwise]
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = f.ker.Subtype :=
limit.isoLimitCone_inv_π _ _
#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ι
+-/
+#print ModuleCat.kernelIsoKer_hom_ker_subtype /-
@[simp, elementwise]
theorem kernelIsoKer_hom_ker_subtype : (kernelIsoKer f).hom ≫ f.ker.Subtype = kernel.ι f :=
IsLimit.conePointUniqueUpToIso_inv_comp _ (limit.isLimit _) WalkingParallelPair.zero
#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtype
+-/
+#print ModuleCat.cokernelIsoRangeQuotient /-
/-- The categorical cokernel of a morphism in `Module`
agrees with the usual module-theoretical quotient.
-/
@@ -116,23 +135,30 @@ noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H)
cokernel f ≅ ModuleCat.of R (H ⧸ f.range) :=
colimit.isoColimitCocone ⟨_, cokernelIsColimit f⟩
#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotient
+-/
+#print ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom /-
-- We now show this isomorphism commutes with the projection of target to the cokernel.
@[simp, elementwise]
theorem cokernel_π_cokernelIsoRangeQuotient_hom :
cokernel.π f ≫ (cokernelIsoRangeQuotient f).hom = f.range.mkQ := by
convert colimit.iso_colimit_cocone_ι_hom _ _ <;> rfl
#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom
+-/
+#print ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv /-
@[simp, elementwise]
theorem range_mkQ_cokernelIsoRangeQuotient_inv :
↿f.range.mkQ ≫ (cokernelIsoRangeQuotient f).inv = cokernel.π f := by
convert colimit.iso_colimit_cocone_ι_inv ⟨_, cokernel_is_colimit f⟩ _ <;> rfl
#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv
+-/
+#print ModuleCat.cokernel_π_ext /-
theorem cokernel_π_ext {M N : ModuleCat.{u} R} (f : M ⟶ N) {x y : N} (m : M) (w : x = y + f m) :
cokernel.π f x = cokernel.π f y := by subst w; simp
#align Module.cokernel_π_ext ModuleCat.cokernel_π_ext
+-/
end ModuleCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -49,7 +49,7 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
has_zero_morphisms.comp_zero (fork.ι s) N]
rfl)
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
- LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simpa [← h] )
+ LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simpa [← h])
#align Module.kernel_is_limit ModuleCat.kernelIsLimit
/-- The cokernel cocone induced by the projection onto the quotient. -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -82,7 +82,7 @@ theorem hasCokernels_moduleCat : HasCokernels (ModuleCat R) :=
⟨fun X Y f => HasColimit.mk ⟨_, cokernelIsColimit f⟩⟩
#align Module.has_cokernels_Module ModuleCat.hasCokernels_moduleCat
-open ModuleCat
+open scoped ModuleCat
attribute [local instance] has_kernels_Module
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -33,23 +33,11 @@ section
variable {M N : ModuleCat.{v} R} (f : M ⟶ N)
-/- warning: Module.kernel_cone -> ModuleCat.kernelCone is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.KernelFork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N f
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.KernelFork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N f
-Case conversion may be inaccurate. Consider using '#align Module.kernel_cone ModuleCat.kernelConeₓ'. -/
/-- The kernel cone induced by the concrete kernel. -/
def kernelCone : KernelFork f :=
KernelFork.ofι (asHom f.ker.Subtype) <| by tidy
#align Module.kernel_cone ModuleCat.kernelCone
-/- warning: Module.kernel_is_limit -> ModuleCat.kernelIsLimit is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsLimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N))))) (ModuleCat.kernelCone.{u1, u2} R _inst_1 M N f)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsLimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N)))) (ModuleCat.kernelCone.{u1, u2} R _inst_1 M N f)
-Case conversion may be inaccurate. Consider using '#align Module.kernel_is_limit ModuleCat.kernelIsLimitₓ'. -/
/-- The kernel of a linear map is a kernel in the categorical sense. -/
def kernelIsLimit : IsLimit (kernelCone f) :=
Fork.IsLimit.mk _
@@ -64,23 +52,11 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simpa [← h] )
#align Module.kernel_is_limit ModuleCat.kernelIsLimit
-/- warning: Module.cokernel_cocone -> ModuleCat.cokernelCocone is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.CokernelCofork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N f
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.CokernelCofork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N f
-Case conversion may be inaccurate. Consider using '#align Module.cokernel_cocone ModuleCat.cokernelCoconeₓ'. -/
/-- The cokernel cocone induced by the projection onto the quotient. -/
def cokernelCocone : CokernelCofork f :=
CokernelCofork.ofπ (asHom f.range.mkQ) <| LinearMap.range_mkQ_comp _
#align Module.cokernel_cocone ModuleCat.cokernelCocone
-/- warning: Module.cokernel_is_colimit -> ModuleCat.cokernelIsColimit is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsColimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N))))) (ModuleCat.cokernelCocone.{u1, u2} R _inst_1 M N f)
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsColimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N)))) (ModuleCat.cokernelCocone.{u1, u2} R _inst_1 M N f)
-Case conversion may be inaccurate. Consider using '#align Module.cokernel_is_colimit ModuleCat.cokernelIsColimitₓ'. -/
/-- The projection onto the quotient is a cokernel in the categorical sense. -/
def cokernelIsColimit : IsColimit (cokernelCocone f) :=
Cofork.IsColimit.mk _
@@ -96,23 +72,11 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
end
-/- warning: Module.has_kernels_Module -> ModuleCat.hasKernels_moduleCat is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R], CategoryTheory.Limits.HasKernels.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : Ring.{u2} R], CategoryTheory.Limits.HasKernels.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u2} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCatₓ'. -/
/-- The category of R-modules has kernels, given by the inclusion of the kernel submodule. -/
theorem hasKernels_moduleCat : HasKernels (ModuleCat R) :=
⟨fun X Y f => HasLimit.mk ⟨_, kernelIsLimit f⟩⟩
#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCat
-/- warning: Module.has_cokernels_Module -> ModuleCat.hasCokernels_moduleCat is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R], CategoryTheory.Limits.HasCokernels.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1))
-but is expected to have type
- forall {R : Type.{u2}} [_inst_1 : Ring.{u2} R], CategoryTheory.Limits.HasCokernels.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u2} R _inst_1))
-Case conversion may be inaccurate. Consider using '#align Module.has_cokernels_Module ModuleCat.hasCokernels_moduleCatₓ'. -/
/-- The category or R-modules has cokernels, given by the projection onto the quotient. -/
theorem hasCokernels_moduleCat : HasCokernels (ModuleCat R) :=
⟨fun X Y f => HasColimit.mk ⟨_, cokernelIsColimit f⟩⟩
@@ -126,9 +90,6 @@ attribute [local instance] has_cokernels_Module
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
-/- warning: Module.kernel_iso_ker -> ModuleCat.kernelIsoKer is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker ModuleCat.kernelIsoKerₓ'. -/
/-- The categorical kernel of a morphism in `Module`
agrees with the usual module-theoretical kernel.
-/
@@ -137,26 +98,17 @@ noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
limit.isoLimitCone ⟨_, kernelIsLimit f⟩
#align Module.kernel_iso_ker ModuleCat.kernelIsoKer
-/- warning: Module.kernel_iso_ker_inv_kernel_ι -> ModuleCat.kernelIsoKer_inv_kernel_ι is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ιₓ'. -/
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
@[simp, elementwise]
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = f.ker.Subtype :=
limit.isoLimitCone_inv_π _ _
#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ι
-/- warning: Module.kernel_iso_ker_hom_ker_subtype -> ModuleCat.kernelIsoKer_hom_ker_subtype is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtypeₓ'. -/
@[simp, elementwise]
theorem kernelIsoKer_hom_ker_subtype : (kernelIsoKer f).hom ≫ f.ker.Subtype = kernel.ι f :=
IsLimit.conePointUniqueUpToIso_inv_comp _ (limit.isLimit _) WalkingParallelPair.zero
#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtype
-/- warning: Module.cokernel_iso_range_quotient -> ModuleCat.cokernelIsoRangeQuotient is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotientₓ'. -/
/-- The categorical cokernel of a morphism in `Module`
agrees with the usual module-theoretical quotient.
-/
@@ -165,9 +117,6 @@ noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H)
colimit.isoColimitCocone ⟨_, cokernelIsColimit f⟩
#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotient
-/- warning: Module.cokernel_π_cokernel_iso_range_quotient_hom -> ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_homₓ'. -/
-- We now show this isomorphism commutes with the projection of target to the cokernel.
@[simp, elementwise]
theorem cokernel_π_cokernelIsoRangeQuotient_hom :
@@ -175,18 +124,12 @@ theorem cokernel_π_cokernelIsoRangeQuotient_hom :
convert colimit.iso_colimit_cocone_ι_hom _ _ <;> rfl
#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom
-/- warning: Module.range_mkq_cokernel_iso_range_quotient_inv -> ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_invₓ'. -/
@[simp, elementwise]
theorem range_mkQ_cokernelIsoRangeQuotient_inv :
↿f.range.mkQ ≫ (cokernelIsoRangeQuotient f).inv = cokernel.π f := by
convert colimit.iso_colimit_cocone_ι_inv ⟨_, cokernel_is_colimit f⟩ _ <;> rfl
#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv
-/- warning: Module.cokernel_π_ext -> ModuleCat.cokernel_π_ext is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_ext ModuleCat.cokernel_π_extₓ'. -/
theorem cokernel_π_ext {M N : ModuleCat.{u} R} (f : M ⟶ N) {x y : N} (m : M) (w : x = y + f m) :
cokernel.π f x = cokernel.π f y := by subst w; simp
#align Module.cokernel_π_ext ModuleCat.cokernel_π_ext
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -188,9 +188,7 @@ theorem range_mkQ_cokernelIsoRangeQuotient_inv :
<too large>
Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_ext ModuleCat.cokernel_π_extₓ'. -/
theorem cokernel_π_ext {M N : ModuleCat.{u} R} (f : M ⟶ N) {x y : N} (m : M) (w : x = y + f m) :
- cokernel.π f x = cokernel.π f y := by
- subst w
- simp
+ cokernel.π f x = cokernel.π f y := by subst w; simp
#align Module.cokernel_π_ext ModuleCat.cokernel_π_ext
end ModuleCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -127,10 +127,7 @@ attribute [local instance] has_cokernels_Module
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
/- warning: Module.kernel_iso_ker -> ModuleCat.kernelIsoKer is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker ModuleCat.kernelIsoKerₓ'. -/
/-- The categorical kernel of a morphism in `Module`
agrees with the usual module-theoretical kernel.
@@ -141,10 +138,7 @@ noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
#align Module.kernel_iso_ker ModuleCat.kernelIsoKer
/- warning: Module.kernel_iso_ker_inv_kernel_ι -> ModuleCat.kernelIsoKer_inv_kernel_ι is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) G (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f))) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) G (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f))) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ιₓ'. -/
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
@[simp, elementwise]
@@ -153,10 +147,7 @@ theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = f.ke
#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ι
/- warning: Module.kernel_iso_ker_hom_ker_subtype -> ModuleCat.kernelIsoKer_hom_ker_subtype is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) G (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) G (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtypeₓ'. -/
@[simp, elementwise]
theorem kernelIsoKer_hom_ker_subtype : (kernelIsoKer f).hom ≫ f.ker.Subtype = kernel.ι f :=
@@ -164,10 +155,7 @@ theorem kernelIsoKer_hom_ker_subtype : (kernelIsoKer f).hom ≫ f.ker.Subtype =
#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtype
/- warning: Module.cokernel_iso_range_quotient -> ModuleCat.cokernelIsoRangeQuotient is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotientₓ'. -/
/-- The categorical cokernel of a morphism in `Module`
agrees with the usual module-theoretical quotient.
@@ -178,10 +166,7 @@ noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H)
#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotient
/- warning: Module.cokernel_π_cokernel_iso_range_quotient_hom -> ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (Submodule.mkQ.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (Submodule.mkQ.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_homₓ'. -/
-- We now show this isomorphism commutes with the projection of target to the cokernel.
@[simp, elementwise]
@@ -191,10 +176,7 @@ theorem cokernel_π_cokernelIsoRangeQuotient_hom :
#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom
/- warning: Module.range_mkq_cokernel_iso_range_quotient_inv -> ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.asHomLeft.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) H (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.mkQ.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.asHomLeft.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) H (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.mkQ.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_invₓ'. -/
@[simp, elementwise]
theorem range_mkQ_cokernelIsoRangeQuotient_inv :
@@ -203,10 +185,7 @@ theorem range_mkQ_cokernelIsoRangeQuotient_inv :
#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv
/- warning: Module.cokernel_π_ext -> ModuleCat.cokernel_π_ext is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u1, u1} R _inst_1} {N : ModuleCat.{u1, u1} R _inst_1} (f : Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) {x : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N} {y : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N} (m : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M), (Eq.{succ u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) x (HAdd.hAdd.{u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (instHAdd.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddZeroClass.toHasAdd.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddMonoid.toAddZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddCommGroup.toAddGroup.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N))))))) y (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 M)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (ModuleCat.isModule.{u1, u1} R _inst_1 M) (ModuleCat.isModule.{u1, u1} R _inst_1 N)) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N)) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 M)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (ModuleCat.isModule.{u1, u1} R _inst_1 M) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f m))) -> (Eq.{succ u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) x) (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) y))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u1, u1} R _inst_1} {N : ModuleCat.{u1, u1} R _inst_1} (f : Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) {x : ModuleCat.carrier.{u1, u1} R _inst_1 N} {y : ModuleCat.carrier.{u1, u1} R _inst_1 N} (m : ModuleCat.carrier.{u1, u1} R _inst_1 M), (Eq.{succ u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) x (HAdd.hAdd.{u1, u1, u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) ((fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 M) => ModuleCat.carrier.{u1, u1} R _inst_1 N) m) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (instHAdd.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddZeroClass.toAdd.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddMonoid.toAddZeroClass.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (SubNegMonoid.toAddMonoid.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddGroup.toSubNegMonoid.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddCommGroup.toAddGroup.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N))))))) y (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) (ModuleCat.carrier.{u1, u1} R _inst_1 M) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 M) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 M) => ModuleCat.carrier.{u1, u1} R _inst_1 N) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 M N) f m))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 N) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 N) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) y))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_ext ModuleCat.cokernel_π_extₓ'. -/
theorem cokernel_π_ext {M N : ModuleCat.{u} R} (f : M ⟶ N) {x y : N} (m : M) (w : x = y + f m) :
cokernel.π f x = cokernel.π f y := by
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
! This file was ported from Lean 3 source module algebra.category.Module.kernels
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 4280f5f32e16755ec7985ce11e189b6cd6ff6735
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -13,6 +13,9 @@ import Mathbin.CategoryTheory.ConcreteCategory.Elementwise
/-!
# The concrete (co)kernels in the category of modules are (co)kernels in the categorical sense.
+
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/33c67ae661dd8988516ff7f247b0be3018cdd952
@@ -30,11 +30,23 @@ section
variable {M N : ModuleCat.{v} R} (f : M ⟶ N)
+/- warning: Module.kernel_cone -> ModuleCat.kernelCone is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.KernelFork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N f
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.KernelFork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N f
+Case conversion may be inaccurate. Consider using '#align Module.kernel_cone ModuleCat.kernelConeₓ'. -/
/-- The kernel cone induced by the concrete kernel. -/
def kernelCone : KernelFork f :=
KernelFork.ofι (asHom f.ker.Subtype) <| by tidy
#align Module.kernel_cone ModuleCat.kernelCone
+/- warning: Module.kernel_is_limit -> ModuleCat.kernelIsLimit is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsLimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N))))) (ModuleCat.kernelCone.{u1, u2} R _inst_1 M N f)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsLimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N)))) (ModuleCat.kernelCone.{u1, u2} R _inst_1 M N f)
+Case conversion may be inaccurate. Consider using '#align Module.kernel_is_limit ModuleCat.kernelIsLimitₓ'. -/
/-- The kernel of a linear map is a kernel in the categorical sense. -/
def kernelIsLimit : IsLimit (kernelCone f) :=
Fork.IsLimit.mk _
@@ -49,11 +61,23 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simpa [← h] )
#align Module.kernel_is_limit ModuleCat.kernelIsLimit
+/- warning: Module.cokernel_cocone -> ModuleCat.cokernelCocone is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.CokernelCofork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N f
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.CokernelCofork.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N f
+Case conversion may be inaccurate. Consider using '#align Module.cokernel_cocone ModuleCat.cokernelCoconeₓ'. -/
/-- The cokernel cocone induced by the projection onto the quotient. -/
def cokernelCocone : CokernelCofork f :=
CokernelCofork.ofπ (asHom f.range.mkQ) <| LinearMap.range_mkQ_comp _
#align Module.cokernel_cocone ModuleCat.cokernelCocone
+/- warning: Module.cokernel_is_colimit -> ModuleCat.cokernelIsColimit is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsColimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (OfNat.mk.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.zero.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.hasZero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) M N))))) (ModuleCat.cokernelCocone.{u1, u2} R _inst_1 M N f)
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u2, u1} R _inst_1} {N : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N), CategoryTheory.Limits.IsColimit.{0, u2, 0, max u1 (succ u2)} CategoryTheory.Limits.WalkingParallelPair CategoryTheory.Limits.walkingParallelPairHomCategory (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.parallelPair.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) M N f (OfNat.ofNat.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) 0 (Zero.toOfNat0.{u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) M N) (CategoryTheory.Limits.HasZeroMorphisms.Zero.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) M N)))) (ModuleCat.cokernelCocone.{u1, u2} R _inst_1 M N f)
+Case conversion may be inaccurate. Consider using '#align Module.cokernel_is_colimit ModuleCat.cokernelIsColimitₓ'. -/
/-- The projection onto the quotient is a cokernel in the categorical sense. -/
def cokernelIsColimit : IsColimit (cokernelCocone f) :=
Cofork.IsColimit.mk _
@@ -69,11 +93,23 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
end
+/- warning: Module.has_kernels_Module -> ModuleCat.hasKernels_moduleCat is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R], CategoryTheory.Limits.HasKernels.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : Ring.{u2} R], CategoryTheory.Limits.HasKernels.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u2} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCatₓ'. -/
/-- The category of R-modules has kernels, given by the inclusion of the kernel submodule. -/
theorem hasKernels_moduleCat : HasKernels (ModuleCat R) :=
⟨fun X Y f => HasLimit.mk ⟨_, kernelIsLimit f⟩⟩
#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCat
+/- warning: Module.has_cokernels_Module -> ModuleCat.hasCokernels_moduleCat is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R], CategoryTheory.Limits.HasCokernels.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1))
+but is expected to have type
+ forall {R : Type.{u2}} [_inst_1 : Ring.{u2} R], CategoryTheory.Limits.HasCokernels.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, max u2 (succ u1)} (ModuleCat.{u1, u2} R _inst_1) (ModuleCat.moduleCategory.{u1, u2} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u2} R _inst_1))
+Case conversion may be inaccurate. Consider using '#align Module.has_cokernels_Module ModuleCat.hasCokernels_moduleCatₓ'. -/
/-- The category or R-modules has cokernels, given by the projection onto the quotient. -/
theorem hasCokernels_moduleCat : HasCokernels (ModuleCat R) :=
⟨fun X Y f => HasColimit.mk ⟨_, cokernelIsColimit f⟩⟩
@@ -87,6 +123,12 @@ attribute [local instance] has_cokernels_Module
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
+/- warning: Module.kernel_iso_ker -> ModuleCat.kernelIsoKer is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)))
+Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker ModuleCat.kernelIsoKerₓ'. -/
/-- The categorical kernel of a morphism in `Module`
agrees with the usual module-theoretical kernel.
-/
@@ -95,17 +137,35 @@ noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
limit.isoLimitCone ⟨_, kernelIsLimit f⟩
#align Module.kernel_iso_ker ModuleCat.kernelIsoKer
+/- warning: Module.kernel_iso_ker_inv_kernel_ι -> ModuleCat.kernelIsoKer_inv_kernel_ι is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) G (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f))) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) G (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f))) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))
+Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ιₓ'. -/
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
@[simp, elementwise]
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f = f.ker.Subtype :=
limit.isoLimitCone_inv_π _ _
#align Module.kernel_iso_ker_inv_kernel_ι ModuleCat.kernelIsoKer_inv_kernel_ι
+/- warning: Module.kernel_iso_ker_hom_ker_subtype -> ModuleCat.kernelIsoKer_hom_ker_subtype is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) G (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (coeSort.{succ u2, succ (succ u2)} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.kernelIsoKer._proof_1.{u1, u2} R _inst_1 G H f))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) G) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) G (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.kernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (fun (x : ModuleCat.carrier.{u2, u1} R _inst_1 G) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G)) (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G))) x (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (ModuleCat.kernelIsoKer.{u1, u2} R _inst_1 G H f)) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (LinearMap.ker.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) f))) (CategoryTheory.Limits.kernel.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasKernels.has_limit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasKernels_moduleCat.{u2, u1} R _inst_1) G H f))
+Case conversion may be inaccurate. Consider using '#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtypeₓ'. -/
@[simp, elementwise]
theorem kernelIsoKer_hom_ker_subtype : (kernelIsoKer f).hom ≫ f.ker.Subtype = kernel.ι f :=
IsLimit.conePointUniqueUpToIso_inv_comp _ (limit.isLimit _) WalkingParallelPair.zero
#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtype
+/- warning: Module.cokernel_iso_range_quotient -> ModuleCat.cokernelIsoRangeQuotient is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)))
+Case conversion may be inaccurate. Consider using '#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotientₓ'. -/
/-- The categorical cokernel of a morphism in `Module`
agrees with the usual module-theoretical quotient.
-/
@@ -114,6 +174,12 @@ noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H)
colimit.isoColimitCocone ⟨_, cokernelIsColimit f⟩
#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotient
+/- warning: Module.cokernel_π_cokernel_iso_range_quotient_hom -> ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (Submodule.mkQ.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (CategoryTheory.Iso.hom.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (Submodule.mkQ.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))
+Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_homₓ'. -/
-- We now show this isomorphism commutes with the projection of target to the cokernel.
@[simp, elementwise]
theorem cokernel_π_cokernelIsoRangeQuotient_hom :
@@ -121,12 +187,24 @@ theorem cokernel_π_cokernelIsoRangeQuotient_hom :
convert colimit.iso_colimit_cocone_ι_hom _ _ <;> rfl
#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom
+/- warning: Module.range_mkq_cokernel_iso_range_quotient_inv -> ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.asHomLeft.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) H (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.mkQ.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f)) (Submodule.Quotient.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R _inst_1) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.linearMapClass.{u1, u2} R _inst_1 G H) (ModuleCat.cokernelIsoRangeQuotient._proof_2.{u1} R _inst_1) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u2, u1} R _inst_1)) G H f (ModuleCat.cokernelIsoRangeQuotient._proof_1.{u1, u2} R _inst_1 G H f))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {G : ModuleCat.{u2, u1} R _inst_1} {H : ModuleCat.{u2, u1} R _inst_1} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) H (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f))) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1)) H (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.asHomLeft.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) H (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.mkQ.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f)) (ModuleCat.of.{u2, u1} R _inst_1 (HasQuotient.Quotient.{u2, u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (Submodule.hasQuotient.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H)) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f)) (Submodule.Quotient.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R _inst_1 H) _inst_1 (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.carrier.{u2, u1} R _inst_1 H) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 G) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R _inst_1 H) (ModuleCat.isAddCommGroup.{u2, u1} R _inst_1 H)) (ModuleCat.isModule.{u2, u1} R _inst_1 G) (ModuleCat.isModule.{u2, u1} R _inst_1 H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R _inst_1 G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R _inst_1)) f))) (ModuleCat.cokernelIsoRangeQuotient.{u1, u2} R _inst_1 G H f))) (CategoryTheory.Limits.cokernel.π.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) G H f (CategoryTheory.Limits.HasCokernels.has_colimit.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R _inst_1) (ModuleCat.moduleCategory.{u2, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u2, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u2, u1} R _inst_1) G H f))
+Case conversion may be inaccurate. Consider using '#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_invₓ'. -/
@[simp, elementwise]
theorem range_mkQ_cokernelIsoRangeQuotient_inv :
↿f.range.mkQ ≫ (cokernelIsoRangeQuotient f).inv = cokernel.π f := by
convert colimit.iso_colimit_cocone_ι_inv ⟨_, cokernel_is_colimit f⟩ _ <;> rfl
#align Module.range_mkq_cokernel_iso_range_quotient_inv ModuleCat.range_mkQ_cokernelIsoRangeQuotient_inv
+/- warning: Module.cokernel_π_ext -> ModuleCat.cokernel_π_ext is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u1, u1} R _inst_1} {N : ModuleCat.{u1, u1} R _inst_1} (f : Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) {x : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N} {y : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N} (m : coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M), (Eq.{succ u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) x (HAdd.hAdd.{u1, u1, u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (instHAdd.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddZeroClass.toHasAdd.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddMonoid.toAddZeroClass.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (SubNegMonoid.toAddMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddGroup.toSubNegMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddCommGroup.toAddGroup.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N))))))) y (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 M)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (ModuleCat.isModule.{u1, u1} R _inst_1 M) (ModuleCat.isModule.{u1, u1} R _inst_1 N)) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N)) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) M) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 M)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (ModuleCat.isModule.{u1, u1} R _inst_1 M) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) f m))) -> (Eq.{succ u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) x) (coeFn.{succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (fun (_x : LinearMap.{u1, u1, u1, u1} R R (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1))) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) => (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) -> (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (LinearMap.hasCoeToFun.{u1, u1, u1, u1} R R (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (Ring.toSemiring.{u1} R _inst_1) (Ring.toSemiring.{u1} R _inst_1) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N)) (AddCommGroup.toAddCommMonoid.{u1} (coeSort.{succ (succ u1), succ (succ u1)} (ModuleCat.{u1, u1} R _inst_1) Type.{u1} (ModuleCat.hasCoeToSort.{u1, u1} R _inst_1) (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)))) (ModuleCat.isModule.{u1, u1} R _inst_1 N) (ModuleCat.isModule.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R _inst_1)))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.CategoryTheory.preadditive.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) y))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : Ring.{u1} R] {M : ModuleCat.{u1, u1} R _inst_1} {N : ModuleCat.{u1, u1} R _inst_1} (f : Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) {x : ModuleCat.carrier.{u1, u1} R _inst_1 N} {y : ModuleCat.carrier.{u1, u1} R _inst_1 N} (m : ModuleCat.carrier.{u1, u1} R _inst_1 M), (Eq.{succ u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) x (HAdd.hAdd.{u1, u1, u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) ((fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 M) => ModuleCat.carrier.{u1, u1} R _inst_1 N) m) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (instHAdd.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddZeroClass.toAdd.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddMonoid.toAddZeroClass.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (SubNegMonoid.toAddMonoid.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddGroup.toSubNegMonoid.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (AddCommGroup.toAddGroup.{u1} (ModuleCat.carrier.{u1, u1} R _inst_1 N) (ModuleCat.isAddCommGroup.{u1, u1} R _inst_1 N))))))) y (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) M N) (ModuleCat.carrier.{u1, u1} R _inst_1 M) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 M) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 M) => ModuleCat.carrier.{u1, u1} R _inst_1 N) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 M N) f m))) -> (Eq.{succ u1} ((fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 N) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) x) (FunLike.coe.{succ u1, succ u1, succ u1} (Quiver.Hom.{succ u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.CategoryStruct.toQuiver.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (CategoryTheory.Category.toCategoryStruct.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1))) N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (ModuleCat.carrier.{u1, u1} R _inst_1 N) (fun (_x : ModuleCat.carrier.{u1, u1} R _inst_1 N) => (fun (x._@.Mathlib.Algebra.Category.ModuleCat.Basic._hyg.285 : ModuleCat.carrier.{u1, u1} R _inst_1 N) => ModuleCat.carrier.{u1, u1} R _inst_1 (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) _x) (ModuleCat.instFunLikeHomModuleCatToQuiverToCategoryStructModuleCategoryCarrier.{u1, u1} R _inst_1 N (CategoryTheory.Limits.cokernel.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f))) (CategoryTheory.Limits.cokernel.π.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) M N f (CategoryTheory.Limits.HasCokernels.has_colimit.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (CategoryTheory.Preadditive.preadditiveHasZeroMorphisms.{u1, succ u1} (ModuleCat.{u1, u1} R _inst_1) (ModuleCat.moduleCategory.{u1, u1} R _inst_1) (ModuleCat.instPreadditiveModuleCatModuleCategory.{u1, u1} R _inst_1)) (ModuleCat.hasCokernels_moduleCat.{u1, u1} R _inst_1) M N f)) y))
+Case conversion may be inaccurate. Consider using '#align Module.cokernel_π_ext ModuleCat.cokernel_π_extₓ'. -/
theorem cokernel_π_ext {M N : ModuleCat.{u} R} (f : M ⟶ N) {x y : N} (m : M) (w : x = y + f m) :
cokernel.π f x = cokernel.π f y := by
subst w
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -124,9 +124,8 @@ noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H)
-- We now show this isomorphism commutes with the projection of target to the cokernel.
@[simp, elementwise]
theorem cokernel_π_cokernelIsoRangeQuotient_hom :
- cokernel.π f ≫ (cokernelIsoRangeQuotient f).hom = f.range.mkQ := by
- -- Porting note: needs help with F but got rid of rfl after
- convert colimit.isoColimitCocone_ι_hom (F := parallelPair f 0) _ _
+ cokernel.π f ≫ (cokernelIsoRangeQuotient f).hom = f.range.mkQ :=
+ colimit.isoColimitCocone_ι_hom _ _
#align Module.cokernel_π_cokernel_iso_range_quotient_hom ModuleCat.cokernel_π_cokernelIsoRangeQuotient_hom
@[simp, elementwise]
@@ -36,7 +36,7 @@ def kernelCone : KernelFork f :=
def kernelIsLimit : IsLimit (kernelCone f) :=
Fork.IsLimit.mk _
(fun s =>
- -- Porting note: broken dot notation on LinearMap.ker
+ -- Porting note (#11036): broken dot notation on LinearMap.ker
LinearMap.codRestrict (LinearMap.ker f) (Fork.ι s) fun c =>
LinearMap.mem_ker.2 <| by
-- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
@@ -58,10 +58,10 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
(fun s =>
f.range.liftQ (Cofork.π s) <| LinearMap.range_le_ker_iff.2 <| CokernelCofork.condition s)
(fun s => f.range.liftQ_mkQ (Cofork.π s) _) fun s m h => by
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
haveI : Epi (asHom (LinearMap.range f).mkQ) :=
(epi_iff_range_eq_top _).mpr (Submodule.range_mkQ _)
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
apply (cancel_epi (asHom (LinearMap.range f).mkQ)).1
convert h
-- Porting note: no longer necessary
@@ -92,14 +92,14 @@ variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
agrees with the usual module-theoretical kernel.
-/
noncomputable def kernelIsoKer {G H : ModuleCat.{v} R} (f : G ⟶ H) :
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
kernel f ≅ ModuleCat.of R (LinearMap.ker f) :=
limit.isoLimitCone ⟨_, kernelIsLimit f⟩
#align Module.kernel_iso_ker ModuleCat.kernelIsoKer
-- We now show this isomorphism commutes with the inclusion of the kernel into the source.
@[simp, elementwise]
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f =
(LinearMap.ker f).subtype :=
limit.isoLimitCone_inv_π _ _
@@ -107,7 +107,7 @@ theorem kernelIsoKer_inv_kernel_ι : (kernelIsoKer f).inv ≫ kernel.ι f =
@[simp, elementwise]
theorem kernelIsoKer_hom_ker_subtype :
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
(kernelIsoKer f).hom ≫ (LinearMap.ker f).subtype = kernel.ι f :=
IsLimit.conePointUniqueUpToIso_inv_comp _ (limit.isLimit _) WalkingParallelPair.zero
#align Module.kernel_iso_ker_hom_ker_subtype ModuleCat.kernelIsoKer_hom_ker_subtype
@@ -116,7 +116,7 @@ theorem kernelIsoKer_hom_ker_subtype :
agrees with the usual module-theoretical quotient.
-/
noncomputable def cokernelIsoRangeQuotient {G H : ModuleCat.{v} R} (f : G ⟶ H) :
- -- Porting note: broken dot notation
+ -- Porting note (#11036): broken dot notation
cokernel f ≅ ModuleCat.of R (H ⧸ LinearMap.range f) :=
colimit.isoColimitCocone ⟨_, cokernelIsColimit f⟩
#align Module.cokernel_iso_range_quotient ModuleCat.cokernelIsoRangeQuotient
In this pull request, I have systematically eliminated the leading whitespace preceding the colon (:
) within all unlabelled or unclassified porting notes. This adjustment facilitates a more efficient review process for the remaining notes by ensuring no entries are overlooked due to formatting inconsistencies.
@@ -64,7 +64,7 @@ def cokernelIsColimit : IsColimit (cokernelCocone f) :=
-- Porting note: broken dot notation
apply (cancel_epi (asHom (LinearMap.range f).mkQ)).1
convert h
- -- Porting note : no longer necessary
+ -- Porting note: no longer necessary
-- exact Submodule.liftQ_mkQ _ _ _
#align Module.cokernel_is_colimit ModuleCat.cokernelIsColimit
@@ -39,8 +39,9 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
-- Porting note: broken dot notation on LinearMap.ker
LinearMap.codRestrict (LinearMap.ker f) (Fork.ι s) fun c =>
LinearMap.mem_ker.2 <| by
- rw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp, Fork.condition,
- HasZeroMorphisms.comp_zero (Fork.ι s) N]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp]
+ rw [Fork.condition, HasZeroMorphisms.comp_zero (Fork.ι s) N]
rfl)
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simp [← h]; rfl)
@@ -39,9 +39,8 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
-- Porting note: broken dot notation on LinearMap.ker
LinearMap.codRestrict (LinearMap.ker f) (Fork.ι s) fun c =>
LinearMap.mem_ker.2 <| by
- -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
- erw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp]
- rw [Fork.condition, HasZeroMorphisms.comp_zero (Fork.ι s) N]
+ rw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp, Fork.condition,
+ HasZeroMorphisms.comp_zero (Fork.ι s) N]
rfl)
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simp [← h]; rfl)
@@ -39,8 +39,9 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
-- Porting note: broken dot notation on LinearMap.ker
LinearMap.codRestrict (LinearMap.ker f) (Fork.ι s) fun c =>
LinearMap.mem_ker.2 <| by
- rw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp, Fork.condition,
- HasZeroMorphisms.comp_zero (Fork.ι s) N]
+ -- This used to be `rw`, but we need `erw` after leanprover/lean4#2644
+ erw [← @Function.comp_apply _ _ _ f (Fork.ι s) c, ← coe_comp]
+ rw [Fork.condition, HasZeroMorphisms.comp_zero (Fork.ι s) N]
rfl)
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simp [← h]; rfl)
@@ -74,7 +74,7 @@ theorem hasKernels_moduleCat : HasKernels (ModuleCat R) :=
⟨fun f => HasLimit.mk ⟨_, kernelIsLimit f⟩⟩
#align Module.has_kernels_Module ModuleCat.hasKernels_moduleCat
-/-- The category or R-modules has cokernels, given by the projection onto the quotient. -/
+/-- The category of R-modules has cokernels, given by the projection onto the quotient. -/
theorem hasCokernels_moduleCat : HasCokernels (ModuleCat R) :=
⟨fun f => HasColimit.mk ⟨_, cokernelIsColimit f⟩⟩
#align Module.has_cokernels_Module ModuleCat.hasCokernels_moduleCat
@@ -2,15 +2,12 @@
Copyright (c) 2020 Markus Himmel. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Markus Himmel
-
-! This file was ported from Lean 3 source module algebra.category.Module.kernels
-! 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.Algebra.Category.ModuleCat.EpiMono
import Mathlib.CategoryTheory.ConcreteCategory.Elementwise
+#align_import algebra.category.Module.kernels from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# The concrete (co)kernels in the category of modules are (co)kernels in the categorical sense.
-/
This is the second half of the changes originally in #5699, removing all occurrences of ;
after a space and implementing a linter rule to enforce it.
In most cases this 2-character substring has a space after it, so the following command was run first:
find . -type f -name "*.lean" -exec sed -i -E 's/ ; /; /g' {} \;
The remaining cases were few enough in number that they were done manually.
@@ -46,7 +46,7 @@ def kernelIsLimit : IsLimit (kernelCone f) :=
HasZeroMorphisms.comp_zero (Fork.ι s) N]
rfl)
(fun s => LinearMap.subtype_comp_codRestrict _ _ _) fun s m h =>
- LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simp [← h] ; rfl)
+ LinearMap.ext fun x => Subtype.ext_iff_val.2 (by simp [← h]; rfl)
#align Module.kernel_is_limit ModuleCat.kernelIsLimit
/-- The cokernel cocone induced by the projection onto the quotient. -/
Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>
The unported dependencies are