algebra.category.Module.images
⟷
Mathlib.Algebra.Category.ModuleCat.Images
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -3,7 +3,7 @@ Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import Algebra.Category.Module.Abelian
+import Algebra.Category.ModuleCat.Abelian
import CategoryTheory.Limits.Shapes.Images
#align_import algebra.category.Module.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -3,8 +3,8 @@ Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-/
-import Mathbin.Algebra.Category.Module.Abelian
-import Mathbin.CategoryTheory.Limits.Shapes.Images
+import Algebra.Category.Module.Abelian
+import CategoryTheory.Limits.Shapes.Images
#align_import algebra.category.Module.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -2,15 +2,12 @@
Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Module.images
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
-/
import Mathbin.Algebra.Category.Module.Abelian
import Mathbin.CategoryTheory.Limits.Shapes.Images
+#align_import algebra.category.Module.images from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
/-!
# The category of R-modules has images.
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -38,32 +38,41 @@ attribute [local ext] Subtype.ext_val
section
+#print ModuleCat.image /-
-- implementation details of `has_image` for Module; use the API, not these
/-- The image of a morphism in `Module R` is just the bundling of `linear_map.range f` -/
def image : ModuleCat R :=
ModuleCat.of R (LinearMap.range f)
#align Module.image ModuleCat.image
+-/
+#print ModuleCat.image.ι /-
/-- The inclusion of `image f` into the target -/
def image.ι : image f ⟶ H :=
f.range.Subtype
#align Module.image.ι ModuleCat.image.ι
+-/
instance : Mono (image.ι f) :=
ConcreteCategory.mono_of_injective (image.ι f) Subtype.val_injective
+#print ModuleCat.factorThruImage /-
/-- The corestriction map to the image -/
def factorThruImage : G ⟶ image f :=
f.range_restrict
#align Module.factor_thru_image ModuleCat.factorThruImage
+-/
+#print ModuleCat.image.fac /-
theorem image.fac : factorThruImage f ≫ image.ι f = f := by ext; rfl
#align Module.image.fac ModuleCat.image.fac
+-/
attribute [local simp] image.fac
variable {f}
+#print ModuleCat.image.lift /-
/-- The universal property for the image factorisation -/
noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
where
@@ -89,7 +98,9 @@ noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
rw [(Classical.indefiniteDescription (fun z => f z = _) _).2]
rfl
#align Module.image.lift ModuleCat.image.lift
+-/
+#print ModuleCat.image.lift_fac /-
theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = image.ι f :=
by
ext x
@@ -97,9 +108,11 @@ theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = ima
rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
rfl
#align Module.image.lift_fac ModuleCat.image.lift_fac
+-/
end
+#print ModuleCat.monoFactorisation /-
/-- The factorisation of any morphism in `Module R` through a mono. -/
def monoFactorisation : MonoFactorisation f
where
@@ -107,7 +120,9 @@ def monoFactorisation : MonoFactorisation f
m := image.ι f
e := factorThruImage f
#align Module.mono_factorisation ModuleCat.monoFactorisation
+-/
+#print ModuleCat.isImage /-
/-- The factorisation of any morphism in `Module R` through a mono has the universal property of
the image. -/
noncomputable def isImage : IsImage (monoFactorisation f)
@@ -115,7 +130,9 @@ noncomputable def isImage : IsImage (monoFactorisation f)
lift := image.lift
lift_fac := image.lift_fac
#align Module.is_image ModuleCat.isImage
+-/
+#print ModuleCat.imageIsoRange /-
/-- The categorical image of a morphism in `Module R`
agrees with the linear algebraic range.
-/
@@ -123,18 +140,23 @@ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) :
Limits.image f ≅ ModuleCat.of R f.range :=
IsImage.isoExt (Image.isImage f) (isImage f)
#align Module.image_iso_range ModuleCat.imageIsoRange
+-/
+#print ModuleCat.imageIsoRange_inv_image_ι /-
@[simp, reassoc, elementwise]
theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).inv ≫ Limits.image.ι f = ModuleCat.ofHom f.range.Subtype :=
IsImage.isoExt_inv_m _ _
#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ι
+-/
+#print ModuleCat.imageIsoRange_hom_subtype /-
@[simp, reassoc, elementwise]
theorem imageIsoRange_hom_subtype {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).hom ≫ ModuleCat.ofHom f.range.Subtype = Limits.image.ι f := by
erw [← image_iso_range_inv_image_ι f, iso.hom_inv_id_assoc]
#align Module.image_iso_range_hom_subtype ModuleCat.imageIsoRange_hom_subtype
+-/
end ModuleCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -38,41 +38,32 @@ attribute [local ext] Subtype.ext_val
section
-#print ModuleCat.image /-
-- implementation details of `has_image` for Module; use the API, not these
/-- The image of a morphism in `Module R` is just the bundling of `linear_map.range f` -/
def image : ModuleCat R :=
ModuleCat.of R (LinearMap.range f)
#align Module.image ModuleCat.image
--/
-#print ModuleCat.image.ι /-
/-- The inclusion of `image f` into the target -/
def image.ι : image f ⟶ H :=
f.range.Subtype
#align Module.image.ι ModuleCat.image.ι
--/
instance : Mono (image.ι f) :=
ConcreteCategory.mono_of_injective (image.ι f) Subtype.val_injective
-#print ModuleCat.factorThruImage /-
/-- The corestriction map to the image -/
def factorThruImage : G ⟶ image f :=
f.range_restrict
#align Module.factor_thru_image ModuleCat.factorThruImage
--/
-#print ModuleCat.image.fac /-
theorem image.fac : factorThruImage f ≫ image.ι f = f := by ext; rfl
#align Module.image.fac ModuleCat.image.fac
--/
attribute [local simp] image.fac
variable {f}
-#print ModuleCat.image.lift /-
/-- The universal property for the image factorisation -/
noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
where
@@ -98,9 +89,7 @@ noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
rw [(Classical.indefiniteDescription (fun z => f z = _) _).2]
rfl
#align Module.image.lift ModuleCat.image.lift
--/
-#print ModuleCat.image.lift_fac /-
theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = image.ι f :=
by
ext x
@@ -108,11 +97,9 @@ theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = ima
rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
rfl
#align Module.image.lift_fac ModuleCat.image.lift_fac
--/
end
-#print ModuleCat.monoFactorisation /-
/-- The factorisation of any morphism in `Module R` through a mono. -/
def monoFactorisation : MonoFactorisation f
where
@@ -120,9 +107,7 @@ def monoFactorisation : MonoFactorisation f
m := image.ι f
e := factorThruImage f
#align Module.mono_factorisation ModuleCat.monoFactorisation
--/
-#print ModuleCat.isImage /-
/-- The factorisation of any morphism in `Module R` through a mono has the universal property of
the image. -/
noncomputable def isImage : IsImage (monoFactorisation f)
@@ -130,7 +115,6 @@ noncomputable def isImage : IsImage (monoFactorisation f)
lift := image.lift
lift_fac := image.lift_fac
#align Module.is_image ModuleCat.isImage
--/
/-- The categorical image of a morphism in `Module R`
agrees with the linear algebraic range.
@@ -146,13 +130,11 @@ theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
IsImage.isoExt_inv_m _ _
#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ι
-#print ModuleCat.imageIsoRange_hom_subtype /-
@[simp, reassoc, elementwise]
theorem imageIsoRange_hom_subtype {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).hom ≫ ModuleCat.ofHom f.range.Subtype = Limits.image.ι f := by
erw [← image_iso_range_inv_image_ι f, iso.hom_inv_id_assoc]
#align Module.image_iso_range_hom_subtype ModuleCat.imageIsoRange_hom_subtype
--/
end ModuleCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -132,9 +132,6 @@ noncomputable def isImage : IsImage (monoFactorisation f)
#align Module.is_image ModuleCat.isImage
-/
-/- warning: Module.image_iso_range -> ModuleCat.imageIsoRange is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.image_iso_range ModuleCat.imageIsoRangeₓ'. -/
/-- The categorical image of a morphism in `Module R`
agrees with the linear algebraic range.
-/
@@ -143,9 +140,6 @@ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) :
IsImage.isoExt (Image.isImage f) (isImage f)
#align Module.image_iso_range ModuleCat.imageIsoRange
-/- warning: Module.image_iso_range_inv_image_ι -> ModuleCat.imageIsoRange_inv_image_ι is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ιₓ'. -/
@[simp, reassoc, elementwise]
theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).inv ≫ Limits.image.ι f = ModuleCat.ofHom f.range.Subtype :=
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -64,10 +64,7 @@ def factorThruImage : G ⟶ image f :=
-/
#print ModuleCat.image.fac /-
-theorem image.fac : factorThruImage f ≫ image.ι f = f :=
- by
- ext
- rfl
+theorem image.fac : factorThruImage f ≫ image.ι f = f := by ext; rfl
#align Module.image.fac ModuleCat.image.fac
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
! This file was ported from Lean 3 source module algebra.category.Module.images
-! leanprover-community/mathlib commit 70fd9563a21e7b963887c9360bd29b2393e6225a
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
! Please do not edit these lines, except to modify the commit id
! if you have ported upstream changes.
-/
@@ -14,6 +14,9 @@ import Mathbin.CategoryTheory.Limits.Shapes.Images
/-!
# The category of R-modules has images.
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
Note that we don't need to register any of the constructions here as instances, because we get them
from the fact that `Module R` is an abelian category.
-/
@@ -133,10 +136,7 @@ noncomputable def isImage : IsImage (monoFactorisation f)
-/
/- warning: Module.image_iso_range -> ModuleCat.imageIsoRange is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.image_iso_range ModuleCat.imageIsoRangeₓ'. -/
/-- The categorical image of a morphism in `Module R`
agrees with the linear algebraic range.
@@ -147,10 +147,7 @@ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) :
#align Module.image_iso_range ModuleCat.imageIsoRange
/- warning: Module.image_iso_range_inv_image_ι -> ModuleCat.imageIsoRange_inv_image_ι is a dubious translation:
-lean 3 declaration is
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) H) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) H (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) (ModuleCat.imageIsoRange.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.image.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f))) (ModuleCat.ofHom.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (ModuleCat.Carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)))
-but is expected to have type
- forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) H) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) H (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (ModuleCat.imageIsoRange.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.image.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f))) (ModuleCat.ofHom.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)))
+<too large>
Case conversion may be inaccurate. Consider using '#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ιₓ'. -/
@[simp, reassoc, elementwise]
theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/e1a18cad9cd462973d760af7de36b05776b8811c
@@ -35,35 +35,44 @@ attribute [local ext] Subtype.ext_val
section
+#print ModuleCat.image /-
-- implementation details of `has_image` for Module; use the API, not these
/-- The image of a morphism in `Module R` is just the bundling of `linear_map.range f` -/
def image : ModuleCat R :=
ModuleCat.of R (LinearMap.range f)
#align Module.image ModuleCat.image
+-/
+#print ModuleCat.image.ι /-
/-- The inclusion of `image f` into the target -/
def image.ι : image f ⟶ H :=
f.range.Subtype
#align Module.image.ι ModuleCat.image.ι
+-/
instance : Mono (image.ι f) :=
ConcreteCategory.mono_of_injective (image.ι f) Subtype.val_injective
+#print ModuleCat.factorThruImage /-
/-- The corestriction map to the image -/
def factorThruImage : G ⟶ image f :=
f.range_restrict
#align Module.factor_thru_image ModuleCat.factorThruImage
+-/
+#print ModuleCat.image.fac /-
theorem image.fac : factorThruImage f ≫ image.ι f = f :=
by
ext
rfl
#align Module.image.fac ModuleCat.image.fac
+-/
attribute [local simp] image.fac
variable {f}
+#print ModuleCat.image.lift /-
/-- The universal property for the image factorisation -/
noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
where
@@ -89,7 +98,9 @@ noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.i
rw [(Classical.indefiniteDescription (fun z => f z = _) _).2]
rfl
#align Module.image.lift ModuleCat.image.lift
+-/
+#print ModuleCat.image.lift_fac /-
theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = image.ι f :=
by
ext x
@@ -97,9 +108,11 @@ theorem image.lift_fac (F' : MonoFactorisation f) : image.lift F' ≫ F'.m = ima
rw [F'.fac, (Classical.indefiniteDescription _ x.2).2]
rfl
#align Module.image.lift_fac ModuleCat.image.lift_fac
+-/
end
+#print ModuleCat.monoFactorisation /-
/-- The factorisation of any morphism in `Module R` through a mono. -/
def monoFactorisation : MonoFactorisation f
where
@@ -107,7 +120,9 @@ def monoFactorisation : MonoFactorisation f
m := image.ι f
e := factorThruImage f
#align Module.mono_factorisation ModuleCat.monoFactorisation
+-/
+#print ModuleCat.isImage /-
/-- The factorisation of any morphism in `Module R` through a mono has the universal property of
the image. -/
noncomputable def isImage : IsImage (monoFactorisation f)
@@ -115,7 +130,14 @@ noncomputable def isImage : IsImage (monoFactorisation f)
lift := image.lift
lift_fac := image.lift_fac
#align Module.is_image ModuleCat.isImage
+-/
+/- warning: Module.image_iso_range -> ModuleCat.imageIsoRange is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), CategoryTheory.Iso.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)))
+Case conversion may be inaccurate. Consider using '#align Module.image_iso_range ModuleCat.imageIsoRangeₓ'. -/
/-- The categorical image of a morphism in `Module R`
agrees with the linear algebraic range.
-/
@@ -124,17 +146,25 @@ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) :
IsImage.isoExt (Image.isImage f) (isImage f)
#align Module.image_iso_range ModuleCat.imageIsoRange
+/- warning: Module.image_iso_range_inv_image_ι -> ModuleCat.imageIsoRange_inv_image_ι is a dubious translation:
+lean 3 declaration is
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) H) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) H (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f))) (ModuleCat.imageIsoRange.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.image.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (ModuleCat.imageIsoRange._proof_1.{u1, u2} R _inst_1 G H f))) (ModuleCat.ofHom.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) Type.{u2} (SetLike.hasCoeToSort.{u2, u2} (Submodule.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Submodule.setLike.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (ModuleCat.Carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.addCommGroup.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (Submodule.module.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.subtype.{u1, u2} R (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{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 (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (coeSort.{max (succ u1) (succ (succ u2)), succ (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) Type.{u2} (ModuleCat.hasCoeToSort.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.linearMapClass.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (ModuleCat.imageIsoRange._proof_2.{u1} R _inst_1) f)))
+but is expected to have type
+ forall {R : Type.{u1}} [_inst_1 : CommRing.{u1} R] {G : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} {H : ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)} (f : Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H), Eq.{succ u2} (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) H) (CategoryTheory.CategoryStruct.comp.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1))) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) H (CategoryTheory.Iso.inv.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f)) (ModuleCat.of.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (ModuleCat.imageIsoRange.{u1, u2} R _inst_1 G H f)) (CategoryTheory.Limits.image.ι.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) G H f (CategoryTheory.Limits.HasImages.has_image.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Limits.hasImages_of_hasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Abelian.instHasStrongEpiMonoFactorisations.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.abelian.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H f))) (ModuleCat.ofHom.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) (Subtype.{succ u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (fun (x : ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) => Membership.mem.{u2, u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (SetLike.instMembership.{u2, u2} (Submodule.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.setLike.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H))) x (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f))) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.addCommGroup.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (CommRing.toRing.{u1} R _inst_1) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (Submodule.module.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Submodule.subtype.{u1, u2} R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (LinearMap.range.{u1, u1, u2, u2, u2} R R (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G)) (AddCommGroup.toAddCommMonoid.{u2} (ModuleCat.carrier.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (ModuleCat.isAddCommGroup.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H)) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) G) (ModuleCat.isModule.{u2, u1} R (CommRing.toRing.{u1} R _inst_1) H) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (Quiver.Hom.{succ u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.CategoryStruct.toQuiver.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (CategoryTheory.Category.toCategoryStruct.{u2, max u1 (succ u2)} (ModuleCat.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)) (ModuleCat.moduleCategory.{u2, u1} R (CommRing.toRing.{u1} R _inst_1)))) G H) (ModuleCat.instLinearMapClassHomModuleCatToQuiverToCategoryStructModuleCategoryCarrierToSemiringToAddCommMonoidIsAddCommGroupIsModule.{u1, u2} R (CommRing.toRing.{u1} R _inst_1) G H) (RingHomSurjective.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) f)))
+Case conversion may be inaccurate. Consider using '#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ιₓ'. -/
@[simp, reassoc, elementwise]
theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).inv ≫ Limits.image.ι f = ModuleCat.ofHom f.range.Subtype :=
IsImage.isoExt_inv_m _ _
#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ι
+#print ModuleCat.imageIsoRange_hom_subtype /-
@[simp, reassoc, elementwise]
theorem imageIsoRange_hom_subtype {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).hom ≫ ModuleCat.ofHom f.range.Subtype = Limits.image.ι f := by
erw [← image_iso_range_inv_image_ι f, iso.hom_inv_id_assoc]
#align Module.image_iso_range_hom_subtype ModuleCat.imageIsoRange_hom_subtype
+-/
end ModuleCat
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -124,13 +124,13 @@ noncomputable def imageIsoRange {G H : ModuleCat.{v} R} (f : G ⟶ H) :
IsImage.isoExt (Image.isImage f) (isImage f)
#align Module.image_iso_range ModuleCat.imageIsoRange
-@[simp, reassoc.1, elementwise]
+@[simp, reassoc, elementwise]
theorem imageIsoRange_inv_image_ι {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).inv ≫ Limits.image.ι f = ModuleCat.ofHom f.range.Subtype :=
IsImage.isoExt_inv_m _ _
#align Module.image_iso_range_inv_image_ι ModuleCat.imageIsoRange_inv_image_ι
-@[simp, reassoc.1, elementwise]
+@[simp, reassoc, elementwise]
theorem imageIsoRange_hom_subtype {G H : ModuleCat.{v} R} (f : G ⟶ H) :
(imageIsoRange f).hom ≫ ModuleCat.ofHom f.range.Subtype = Limits.image.ι f := by
erw [← image_iso_range_inv_image_ι f, iso.hom_inv_id_assoc]
mathlib commit https://github.com/leanprover-community/mathlib/commit/3b267e70a936eebb21ab546f49a8df34dd300b25
@@ -113,7 +113,7 @@ the image. -/
noncomputable def isImage : IsImage (monoFactorisation f)
where
lift := image.lift
- lift_fac' := image.lift_fac
+ lift_fac := image.lift_fac
#align Module.is_image ModuleCat.isImage
/-- The categorical image of a morphism in `Module R`
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
@@ -63,13 +63,15 @@ variable {f}
noncomputable def image.lift (F' : MonoFactorisation f) : image f ⟶ F'.I where
toFun := (fun x => F'.e (Classical.indefiniteDescription _ x.2).1 : image f → F'.I)
map_add' x y := by
- apply (mono_iff_injective F'.m).1; infer_instance
+ apply (mono_iff_injective F'.m).1
+ · infer_instance
rw [LinearMap.map_add]
change (F'.e ≫ F'.m) _ = (F'.e ≫ F'.m) _ + (F'.e ≫ F'.m) _
simp_rw [F'.fac, (Classical.indefiniteDescription (fun z => f z = _) _).2]
rfl
map_smul' c x := by
- apply (mono_iff_injective F'.m).1; infer_instance
+ apply (mono_iff_injective F'.m).1
+ · infer_instance
rw [LinearMap.map_smul]
change (F'.e ≫ F'.m) _ = _ • (F'.e ≫ F'.m) _
simp_rw [F'.fac, (Classical.indefiniteDescription (fun z => f z = _) _).2]
Empty lines were removed by executing the following Python script twice
import os
import re
# Loop through each file in the repository
for dir_path, dirs, files in os.walk('.'):
for filename in files:
if filename.endswith('.lean'):
file_path = os.path.join(dir_path, filename)
# Open the file and read its contents
with open(file_path, 'r') as file:
content = file.read()
# Use a regular expression to replace sequences of "variable" lines separated by empty lines
# with sequences without empty lines
modified_content = re.sub(r'(variable.*\n)\n(variable(?! .* in))', r'\1\2', content)
# Write the modified content back to the file
with open(file_path, 'w') as file:
file.write(modified_content)
@@ -26,7 +26,6 @@ namespace ModuleCat
set_option linter.uppercaseLean3 false -- `Module`
variable {R : Type u} [Ring R]
-
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
attribute [local ext] Subtype.ext_val
@@ -2,15 +2,12 @@
Copyright (c) 2022 Scott Morrison. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Scott Morrison
-
-! This file was ported from Lean 3 source module algebra.category.Module.images
-! 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.Abelian
import Mathlib.CategoryTheory.Limits.Shapes.Images
+#align_import algebra.category.Module.images from "leanprover-community/mathlib"@"70fd9563a21e7b963887c9360bd29b2393e6225a"
+
/-!
# The category of R-modules has images.
Change [CommRing R] to [Ring R] at the top of the file Mathlib.Algebra.Category.ModuleCat.Images.
@@ -28,7 +28,7 @@ universe u v
namespace ModuleCat
set_option linter.uppercaseLean3 false -- `Module`
-variable {R : Type u} [CommRing R]
+variable {R : Type u} [Ring R]
variable {G H : ModuleCat.{v} R} (f : G ⟶ H)
The unported dependencies are