algebra.category.Module.kernelsMathlib.Algebra.Category.ModuleCat.Kernels

This file has been ported!

Changes since the initial port

The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,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"
Diff
@@ -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"
 
Diff
@@ -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.
 
Diff
@@ -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
 
Diff
@@ -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. -/
Diff
@@ -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
 
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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
Diff
@@ -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.
 -/
 
 
Diff
@@ -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

Changes in mathlib4

mathlib3
mathlib4
chore: resolve some porting notes which are fixed now (#11317)

It started with the one in Convex/Combination and spiralled into revisiting all notes with needs in them. The ToLin changes overlap with #11171.

Diff
@@ -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]
chore: classify broken dot notation porting notes (#11038)

Classifies by adding issue number #11036 to porting notes claiming:

broken dot notation

Diff
@@ -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
style: reduce spacing variation in "porting note" comments (#10886)

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.

Diff
@@ -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
 
Revert "chore: revert #7703 (#7710)"

This reverts commit f3695eb2.

Diff
@@ -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)
chore: revert #7703 (#7710)

This reverts commit 26eb2b0a.

Diff
@@ -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)
chore: bump toolchain to v4.2.0-rc2 (#7703)

This includes all the changes from #7606.

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

Diff
@@ -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)
chore: fix grammar mistakes (#6121)
Diff
@@ -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
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com>

Diff
@@ -2,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.
 -/
chore: remove occurrences of semicolon after space (#5713)

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.

Diff
@@ -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. -/
feat: port Algebra.Category.ModuleCat.Kernels (#3916)

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Joël Riou <joel.riou@universite-paris-saclay.fr>

Dependencies 8 + 484

485 files ported (98.4%)
190286 lines ported (98.4%)
Show graph

The unported dependencies are